Вступление
MariaDB - это система управления базами данных с открытым исходным кодом, обычно используемая в качестве альтернативы для части MySQL популярной https://www.digitalocean.com/community/tutorials/how-to- install-linux-apache-mariadb-php-lamp-stack-debian10 [LAMP] (Linux, Apache, MySQL, PHP / Python / Perl) стек. Он предназначен для замены MySQL и Debian и теперь поставляется только с пакетами MariaDB. Если вы попытаетесь установить пакеты, относящиеся к серверу MySQL, вы получите вместо этого совместимые замещающие версии MariaDB.
Краткая версия этого руководства по установке состоит из следующих трех этапов:
-
Обновите индекс вашего пакета, используя
+ apt +
-
Установите пакет
+ mariadb-server
с помощью` + apt`. Пакет также включает в себя соответствующие инструменты для взаимодействия с MariaDB -
Запустите включенный скрипт безопасности «+ mysql_secure_installation +», чтобы ограничить доступ к серверу.
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
В этом руководстве объясняется, как установить MariaDB версии 10.3 на сервере Debian 10, а также убедиться, что он работает и имеет безопасную начальную конфигурацию.
Предпосылки
Чтобы следовать этому уроку, вам понадобится:
-
Один сервер Debian 10, настроенный по следующему this первоначальному руководству по установке сервера, включая пользователя без прав root с
+ sudo +
привилегии и брандмауэр.
Шаг 1 - Установка MariaDB
В Debian 10 версия MariaDB 10.3 включена в репозитории пакетов APT по умолчанию. Он помечен как вариант MySQL по умолчанию командой разработчиков Debian MySQL / MariaDB.
Чтобы установить его, обновите индекс пакета на вашем сервере с помощью + apt +
:
sudo apt update
Затем установите пакет:
sudo apt install mariadb-server
Эти команды установят MariaDB, но не предложат вам установить пароль или внести другие изменения в конфигурацию. Поскольку конфигурация по умолчанию оставляет вашу установку MariaDB небезопасной, мы будем использовать скрипт, который предоставляет пакет + mariadb-server +
, чтобы ограничить доступ к серверу и удалить неиспользуемые учетные записи.
Шаг 2 - Настройка MariaDB
Для новых установок MariaDB следующий шаг - запустить включенный скрипт безопасности. Этот скрипт изменяет некоторые из менее безопасных параметров по умолчанию. Мы будем использовать его для блокировки удаленных * root * логинов и удаления неиспользуемых пользователей базы данных.
Запустите скрипт безопасности:
sudo mysql_secure_installation
Это проведет вас через серию запросов, в которых вы сможете внести некоторые изменения в параметры безопасности вашей установки MariaDB. Первая подсказка попросит вас ввести текущую базу данных * root * пароль. Поскольку мы еще не настроили его, нажмите + ENTER +
, чтобы указать “нет”.
Следующая подсказка спросит вас, хотите ли вы установить пароль * root * для базы данных. Введите + A +
и затем нажмите + ENTER
. В Debian учетная запись * root * для MariaDB тесно связана с автоматическим обслуживанием системы, поэтому мы не должны изменять настроенные методы аутентификации для этой учетной записи. Это позволило бы обновлению пакета сломать систему базы данных, удалив доступ к административной учетной записи. Позже мы расскажем, как дополнительно настроить дополнительную учетную запись администратора для доступа по паролю, если аутентификация сокета не подходит для вашего случая использования.
Оттуда вы можете нажать + Y +
, а затем + ENTER +
, чтобы принять значения по умолчанию для всех последующих вопросов. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленные логины * root * и загрузит эти новые правила, чтобы MariaDB сразу же учла внесенные вами изменения.
Шаг 3 - (Необязательно) Настройка аутентификации пользователя и привилегий
В системах Debian, работающих под управлением MariaDB 10.3, пользователь * root * MariaDB настроен на аутентификацию с использованием плагина + unix_socket +
по умолчанию, а не с паролем. Это обеспечивает большую безопасность и удобство использования во многих случаях, но также может усложнить ситуацию, когда вам необходимо разрешить административные права внешней программы (например, phpMyAdmin).
Поскольку сервер использует учетную запись * root * для таких задач, как ротация журналов, запуск и остановка сервера, лучше не изменять данные аутентификации учетной записи * root *. Изменение учетных данных в файле конфигурации + / etc / mysql / debian.cnf +
может сработать изначально, но обновления пакета могут перезаписать эти изменения. Вместо изменения учетной записи * root * сопровождающие пакета рекомендуют создать отдельную административную учетную запись для доступа на основе пароля.
Для этого мы создадим новую учетную запись с именем + admin +
с теми же возможностями, что и у учетной записи * root *, но настроенную для аутентификации по паролю. Для этого откройте подсказку MariaDB с вашего терминала:
sudo mysql
Теперь мы создадим нового пользователя с привилегиями * root * и доступом на основе пароля. Измените имя пользователя и пароль в соответствии с вашими предпочтениями:
MariaDB [(none)]> GRANT ALL ON *.* TO ''@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;
Сбросьте привилегии, чтобы убедиться, что они сохранены и доступны в текущем сеансе:
MariaDB [(none)]> FLUSH PRIVILEGES;
После этого выйдите из оболочки MariaDB:
MariaDB [(none)]> exit
Наконец, давайте проверим установку MariaDB.
Шаг 4 - Тестирование MariaDB
При установке из репозиториев по умолчанию MariaDB должна запуститься автоматически. Чтобы проверить это, проверьте его статус.
sudo systemctl status mariadb
Вы получите вывод, похожий на следующий:
Выход
● mariadb.service - MariaDB 10.3.15 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: since Fri 2019-07-12 20:35:29 UTC; 47min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 2036 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 30 (limit: 2378)
Memory: 76.1M
CGroup: /system.slice/mariadb.service
└─2036 /usr/sbin/mysqld
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 6/7: Checking and upgrading tables
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Running 'mysqlcheck' with connection arguments: --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Connecting to localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Disconnecting from localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Processing databases
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: information_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: performance_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]:
Jul 12 20:35:30 deb-mariadb1 /etc/mysql/debian-start[2132]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
Если MariaDB не работает, вы можете запустить его с помощью команды + sudo systemctl start mariadb +.
Для дополнительной проверки вы можете попробовать подключиться к базе данных, используя инструмент + mysqladmin +
, который является клиентом, который позволяет вам запускать административные команды. Например, эта команда говорит подключиться к MariaDB как * root * и вернуть версию, используя сокет Unix:
sudo mysqladmin version
Вы должны получить вывод, похожий на этот:
Outputmysqladmin Ver 9.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.3.15-MariaDB-1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 48 min 14 sec
Threads: 7 Questions: 474 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 0.163
Если вы настроили отдельного административного пользователя с аутентификацией по паролю, вы можете выполнить ту же операцию, набрав:
mysqladmin -u -p version
Это означает, что MariaDB запущен и работает, и что ваш пользователь может успешно пройти аутентификацию.
Заключение
В этом руководстве вы установили MariaDB для работы в качестве сервера SQL. В процессе установки вы также обезопасили сервер. При желании вы также создали отдельного пользователя для обеспечения административного доступа к MariaDB через обновления пакетов.
Теперь, когда у вас есть работающий и безопасный сервер MariaDB, вот несколько примеров следующих шагов, которые вы можете предпринять для работы с сервером:
Вы также можете включить MariaDB в большой стек приложений: