Вступление
MariaDB - это система управления базами данных с открытым исходным кодом, обычно устанавливаемая вместо MySQL как часть популярного https://www.digitalocean.com/community/tutorials/how-to-install -linux-apache-mariadb-php-lamp-stack-debian9 [LAMP] (Linux, Apache, MySQL, PHP / Python / Perl) стек. Он использует реляционную базу данных и SQL (язык структурированных запросов) для управления своими данными. MariaDB был исключен из MySQL в 2009 году из-за проблем с лицензированием.
Краткая версия установки проста: обновите индекс пакета, установите пакет + mariadb-server +
(который указывает на MariaDB), а затем запустите включенный скрипт безопасности.
sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation
В этом руководстве объясняется, как установить MariaDB версии 10.1 на сервере Debian 9.
Предпосылки
Чтобы следовать этому уроку, вам понадобится:
-
Один сервер Debian 9 настроен следующим образом: this первоначальное руководство по первоначальной настройке сервера, включая пользователя без прав root с
+ sudo +
привилегии и брандмауэр.
Шаг 1 - Установка MariaDB
В Debian 9 MariaDB версии 10.1 по умолчанию включена в репозитории пакета APT. Он помечен как вариант MySQL по умолчанию командой разработчиков Debian MySQL / MariaDB.
Чтобы установить его, обновите индекс пакета на вашем сервере с помощью + apt +
:
sudo apt update
Затем установите пакет:
sudo apt install mariadb-server
Это установит MariaDB, но не предложит вам установить пароль или внести другие изменения в конфигурацию. Поскольку это делает вашу установку MariaDB небезопасной, мы обратимся к этому дальше.
Шаг 2 - Настройка MariaDB
Для новых установок вы захотите запустить прилагаемый скрипт безопасности. Это изменяет некоторые из менее безопасных параметров по умолчанию для таких вещей, как удаленные * root * логины и примеры пользователей.
Запустите скрипт безопасности:
sudo mysql_secure_installation
Это проведет вас через серию запросов, в которых вы сможете внести некоторые изменения в параметры безопасности вашей установки MariaDB. Первая подсказка попросит вас ввести текущую базу данных * root * пароль. Поскольку мы еще не настроили его, нажмите + ENTER +
, чтобы указать “нет”.
Следующая подсказка спросит вас, хотите ли вы установить пароль * root * для базы данных. Введите + A +
и затем нажмите + ENTER
. В Debian учетная запись * root * для MariaDB тесно связана с автоматическим обслуживанием системы, поэтому мы не должны изменять настроенные методы аутентификации для этой учетной записи. Это позволило бы обновлению пакета сломать систему базы данных, удалив доступ к административной учетной записи. Позже мы расскажем, как дополнительно настроить дополнительную учетную запись администратора для доступа по паролю, если аутентификация сокета не подходит для вашего случая использования.
Оттуда вы можете нажать + Y +
, а затем + ENTER +
, чтобы принять значения по умолчанию для всех последующих вопросов. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленные логины * root * и загрузит эти новые правила, чтобы MariaDB сразу же учла внесенные вами изменения.
Шаг 3 - (Необязательно) Настройка аутентификации пользователя и привилегий
В системах Debian, работающих под управлением MariaDB 10.1, пользователь * root * MariaDB настроен на аутентификацию с использованием плагина + unix_socket +
по умолчанию, а не с паролем. Это обеспечивает большую безопасность и удобство использования во многих случаях, но также может усложнить ситуацию, когда вам необходимо разрешить административные права внешней программы (например, phpMyAdmin).
Поскольку сервер использует учетную запись * root * для таких задач, как ротация журналов, запуск и остановка сервера, лучше не изменять данные аутентификации учетной записи * root *. Изменение учетных данных учетной записи в + / etc / mysql / debian.cnf +
может сработать изначально, но обновления пакета могут перезаписать эти изменения. Вместо изменения учетной записи * root * сопровождающие пакета рекомендуют создать отдельную административную учетную запись, если вам нужно настроить доступ на основе пароля.
Для этого мы создадим новую учетную запись с именем + admin +
с теми же возможностями, что и у учетной записи * root *, но настроенную для аутентификации по паролю. Для этого откройте подсказку MariaDB с вашего терминала:
sudo mysql
Теперь мы можем создать нового пользователя с привилегиями * root * и доступом на основе пароля. Измените имя пользователя и пароль в соответствии с вашими предпочтениями:
GRANT ALL ON *.* TO ''@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;
Сбросьте привилегии, чтобы убедиться, что они сохранены и доступны в текущем сеансе:
FLUSH PRIVILEGES;
После этого выйдите из оболочки MariaDB:
exit
Наконец, давайте проверим установку MariaDB.
Шаг 4 - Тестирование MariaDB
При установке из репозиториев по умолчанию MariaDB должна запуститься автоматически. Чтобы проверить это, проверьте его статус.
sudo systemctl status mariadb
Вы увидите вывод, похожий на следующий:
Выход
● mariadb.service - MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: since Tue 2018-09-04 16:22:47 UTC; 2h 35min ago
Process: 15596 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSIT
Process: 15594 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Process: 15478 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||
Process: 15474 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITI
Process: 15471 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysql
Main PID: 15567 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 4915)
CGroup: /system.slice/mariadb.service
└─15567 /usr/sbin/mysqld
Sep 04 16:22:45 deb-mysql1 systemd[1]: Starting MariaDB database server...
Sep 04 16:22:46 deb-mysql1 mysqld[15567]: 2018-09-04 16:22:46 140183374869056 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process 15567 ...
Sep 04 16:22:47 deb-mysql1 systemd[1]:
Если MariaDB не работает, вы можете запустить его с помощью + sudo systemctl start mariadb +
.
Для дополнительной проверки вы можете попробовать подключиться к базе данных, используя инструмент + mysqladmin +
, который является клиентом, который позволяет вам запускать административные команды. Например, эта команда говорит подключиться к MariaDB как * root * и вернуть версию, используя сокет Unix:
sudo mysqladmin version
Вы должны увидеть вывод, похожий на этот:
Outputmysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Server version 10.1.26-MariaDB-0+deb9u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 2 hours 44 min 46 sec
Threads: 1 Questions: 36 Slow queries: 0 Opens: 21 Flush tables: 1 Open tables: 15 Queries per second avg: 0.003
Если вы настроили отдельного административного пользователя с аутентификацией по паролю, вы можете выполнить ту же операцию, набрав:
mysqladmin -u -p version
Это означает, что MariaDB запущен и работает, и что ваш пользователь может успешно пройти аутентификацию.
Заключение
Теперь у вас есть базовая установка MariaDB, установленная на вашем сервере. Вот несколько примеров следующих шагов, которые вы можете предпринять: