Установка MariaDB 10.2 на Debian 9

debian mariadb

Установка MariaDB 10.2 на Debian 9

Думаю всем известно, что MariaDB — это ответвление от MySQL. Разработку и поддержку MariaDB осуществляет компания MariaDB Corporation Ab и фонд MariaDB Foundation. Ведущий разработчик MariaDB — это всем известный Майкл Видениус, автор оригинальной версии MySQL.

На текущий момент актуальной является версия MariaDB 10.2.13, которая была выпущена 13 февраля 2018 года. В новой версии MariaDB хранилище InnoDB было обновлено до выпуска 5.7.21, так же было исправлено более 100 ошибок, в том числе устранено 6 уязвимостей, которые могли быть использованы для инициирования удалённого отказа в обслуживании.

Давайте попробуем установить новую версию на чистую систему Debian 9.3 Stretch.

Не буду скрывать, что мне очень нравится MariaDB и я давно отказался от использования Oracle MySQL в пользу MariaDB или Percona Server for MySQL о чем ни капли не жалею. MariaDB используется в качестве замены Oracle MySQL во многих Linux дистрибутивах. Так же MariaDB используется в качестве БД на большом количестве крупных сайтов, собственно и мой блог тоже не исключение — в качестве БД у меня используется MariaDB 10.2.

Исходные данные: ОС Debian 9.3 Stretch;

Задача: Установить MariaDB 10.2.13 с минимум телодвижений и произвести базовую настройку БД;

В интернете можно найти много статей о том как установить MariaDB на Debian, но все они предлагают довольно громоздкие решения.

Есть так же официальная страничка по установке MariaDB с помощью пакетного менеджера apt, но она тоже не содержит простого решения, а ведь оно есть!

Установка MariaDB 10.2.13 на Debian 9:

  1. Установка необходимых доп. пакетов:

|apt-get install dirmngr curl -y apt-get update| |------------------------------------------------|

  1. А теперь та самая простая магия, о которой нигде не написано — скачивание и запуск скрипта установки репозитария:
curl -sS https://downloads.

Для информации:

Данный скрипт проанализирует вашу систему, установит GPG-ключи и добавит репозитарий в файл /etc/apt/sources.list.d/mariadb.list

Скрипт является официальным и поддерживает дистрибутивы: RHEL/CentOS 6 & 7, Ubuntu 14.04 LTS trusty & 16.04 LTS xenial, Debian 7 wheezy & 8 jessie и SLES 12

Скрипт так же поддерживает установку репозитариев для разных версий MariaDB, MaxScale и MariaDB Tools, Вы можете скачать его и посмотреть все опции запуска:

./mariadb_repo_setup --help

P.S. Для любителей все делать руками есть удобный портал, где можно более гибко выбрать нужный репозитарий в зависимости от географического положения вашего сервера.

  1. Обновляем список пакетов:
apt-get update
  1. Устанавливаем последнюю версию MariaDB 10.2.x:
apt-get install mariadb-server -y

В процессе установки инсталлятор попросит нас придумать пароль пользователя root, на данном этапе мы его оставим пустым и поменяем потом.

После установки проверим статус работы MariaDB:

|● mariadb.service - MariaDB 10.2.13 database server

Loaded: loaded /lib/systemd/system/mariadb.service; enabled; vendor preset: enabled

Drop-In: /etc/systemd/system/mariadb.service.d

└─migrated-from-my.cnf-settings.conf

Active: active running since Thu 2018-02-15 12:14:17 +05; 19s ago

Docs: man:mysqld8

https://mariadb.com/kb/en/library/systemd/

Main PID: 7270 mysqld

Status: “Taking your SQL requests now…”

CGroup: /system.slice/mariadb.service

└─7270 /usr/sbin/mysqld # systemctl status mariadb| |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

|tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      7270/mysqld

# ps -ef | grep [m]ysql

mysql     7270     1  0 12:14 ?        00:00:00 /usr/sbin/mysqld # netstat -ltupn | grep mysql| |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

А так же попробуем подключиться к БД с помощью команды mysql т.к. на этапе установки мы оставили пароль root пустым, то использовать опции \-u root \-p мы не будеи:

|Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 10

Server version: 10.2.13-MariaDB-10.2.13+maria~stretch-log mariadb.org binary distribution

Copyright c 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [none]> # mysql| |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

Мы успешно подключились к серверу MariaDB.

  1. Теперь запустим мастер настройки безопасности:
mysql_secure_installation

На вопрос:

Enter current password for root enter for none:

нажимаем Enter, текущий пароль root у нас пустой.

Далее вопрос:

Set root password? [Y/n]

вводим Y, да мы хотим поменять пароль root

и далее придумываем СЛОЖНЫЙ пароль root

Далее вопрос:

Remove anonymous users? [Y/n]

вводим Y, мы хотим удалить анонимного пользователя.

Далее вопрос:

Disallow root login remotely? [Y/n]

вводим Y, да мы хотим запретить подключаться под пользователем root с удаленных машин.

Далее вопрос:

Remove test database and access to it? [Y/n]

вводим Y, да мы хотим удалить тестовую базу test

И последний вопрос:

Reload privilege tables now? [Y/n]

вводим Y, да мы хотим перезагрузить таблицу привилегий для вступления их в силу.

После этого мы выполнили минимальные меры по защите нашего экземпляра MariaDB.

Попробуем теперь подключиться к базе:

|ERROR 1045 28000: Access denied for user ‘root’@’localhost’ using password: NO # mysql| |----------------------------------------------------------------------------------------------|

Как мы видим с пустым паролем root нас больше не пускают.

Подключимся с указанием дополнительных опций и вводом пароля:

|Enter password:

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 20

Server version: 10.2.13-MariaDB-10.2.13+maria~stretch-log mariadb.org binary distribution

Copyright c 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [none]> # mysql -u root -p| |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

Отлично, все получилось.