Установка MariaDB 10.5 на Debian 10

Пару лет назад я писал статью про установку MariaDB 10.4 на Debian 9. С тех пор утекло много времени, уже давненько вышла MariaDB 10.5 и пора написать про ее установку. В установке и настройке MariaDB 10.5 есть несколько нюансов, поэтому будьте внимательны.

Итак, давайте попробуем установить MariaDB 10.5 на чистую систему Debian 10 (Buster).

На момент написания статьи актуальна версия MariaDB 10.5.10
Полный список изменений можно найти на официальной странице.

Исходные данные: ОС Debian 10 (Buster);
Задача: Установить MariaDB 10.5.10 с минимум телодвижений и произвести базовую настройку БД;

Установка MariaDB 10.5.x на Debian 10:

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

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

2. А теперь та самая простая магия, о которой мало где написано — скачивание и запуск скрипта установки репозитария:

wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup && chmod a+x mariadb_repo_setup
./mariadb_repo_setup --mariadb-server-version=mariadb-10.5

Результат работы скрипта:

[info] Checking for script prerequisites.
[info] Repository file successfully written to /etc/apt/sources.list.d/mariadb.list
[info] Adding trusted package signing keys...
[info] Running apt-get update...
[info] Done adding trusted package signing keys

Для информации 1:
Если Вы хотите установить версию ниже, например 10.4, то запустите скрипт с опцией —mariadb-server-version=mariadb-10.4

Для информации 2:
Данный скрипт проанализирует вашу систему, установит GPG-ключи и добавит репозитарий в файл /etc/apt/sources.list.d/mariadb.list
Скрипт является официальным и поддерживает дистрибутивы: RHEL/CentOS 7 & 8, Ubuntu 16.04 LTS (xenial) & 18.04 (bionic) & 20.04 LTS (focal), Debian 9 (stretch) & 10 (buster) и SLES 12 и 15
Скрипт так же поддерживает установку репозитариев для разных версий MariaDB, MaxScale и MariaDB Tools, Вы можете скачать его и посмотреть все опции запуска:

./mariadb_repo_setup --help

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

3. Обновляем список пакетов:

apt-get update

4. Устанавливаем последнюю версию MariaDB 10.5.x:

apt-get install mariadb-server -y

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

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

# systemctl status mariadb
● mariadb.service - MariaDB 10.5.10 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 Wed 2021-05-26 20:00:20 CEST; 10s ago
     Docs: man:mariadbd(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 17897 (mariadbd)
   Status: "Taking your SQL requests now..."
    Tasks: 12 (limit: 2296)
   Memory: 80.3M
   CGroup: /system.slice/mariadb.service
           └─17897 /usr/sbin/mariadbd

May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: information_schema
May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: mysql
May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: performance_schema
May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: Phase 6/7: Checking and upgrading tables
May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: Processing databases
May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: information_schema
May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: performance_schema
May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: Phase 7/7: Running 'FLUSH PRIVILEGES'
May 26 20:00:21 myserver /etc/mysql/debian-start[17916]: OK
May 26 20:00:21 myserver /etc/mysql/debian-start[18166]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

Проверим порт и работу демона. Обратите внимание, что начиная с версии 10.5 все исполняемые файлы, начинающиеся со слова «mysql» переименованы с использованием слова «mariadb». Старые имена пока сохранены в форме символических ссылок, но нужно уже привыкать использовать вместо mysql слово mariadb.

# netstat -ltupn | grep maria
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      17897/mariadbd

# ps -ef | grep [m]aria
mysql    17897     1  0 20:00 ?        00:00:00 /usr/sbin/mariadbd

А так же попробуем подключиться к БД с помощью команды mariadb:

# mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 44
Server version: 10.5.10-MariaDB-1:10.5.10+maria~buster 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)]>
MariaDB [(none)]> SELECT version();
+----------------------------------------+
| version()                              |
+----------------------------------------+
| 10.5.10-MariaDB-1:10.5.10+maria~buster |
+----------------------------------------+
1 row in set (0.000 sec)

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

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

mysql_secure_installation

На вопрос:
Enter current password for root (enter for none):
нажимаем Enter, текущий пароль root у нас пустой.

Далее вопрос:
Switch to unix_socket authentication [Y/n]
вводим Y, таким образом мы оставим возможность аутентификации через unix-сокет — это нововведение появилось еще в 10.4, плагин позволяет использовать присутствующие в системе учётные записи для подключения к СУБД при помощи локального unix-сокета.

Далее вопрос:
Change the 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.

Чтобы проверить, что под root с пустым паролем нас не пустят нам нужно залогиниться под непривилегированным пользователем и попробовать выполнить (когда у нас спросят пароль root, мы нажмем Enter, тем самым пароль будет пустым):

[email protected]:~$ mysql -u root -p
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

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

А теперь так же находясь под непривилегированным пользователем на запрос пароля введем его:

[email protected]:~$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 57
Server version: 10.5.10-MariaDB-1:10.5.10+maria~buster 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)]>

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

На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.


Оставить комментарий

avatar
1000

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

  Подписаться  
Уведомление о