*Предыдущая версия данного обучающего руководства была написана Брайаном Бушероном.*

Введение

MariaDB — это система управления реляционными базами данных с открытым исходным кодом, которая часто используется в качестве альтернативы MySQL в составе популярного набора LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она представляет собой упрощенную замену MySQL.

В этом кратком обучающем модуле описывается процедура установки СУБД MariaDB на сервере Ubuntu 20.04 и ее настройки с безопасной начальной конфигурацией. Также в нем описывается процедура настройки дополнительной административнйо учетной записи для доступа с помощью пароля.

Предварительные требования

mariadb illustration for: Предварительные требования

Для выполнения этого обучающего модуля вам потребуется сервер под управлением Ubuntu 20.04. На сервере должен быть пользователь без привилегий root с правами администратора и брандмауэр, настроенный с помощью UFW. Вы можете выполнить настройку, следуя указаниям документа «Начальная настройка сервера для Ubuntu 20.04».

Шаг 1 — Установка MariaDB

Перед началом установки MariaDB обновите индекс пакетов на вашем сервере с помощью apt:

				
					
sudo apt update

				
			

Затем выполните установку пакета:

				
					
sudo apt install mariadb-server

				
			

При установке из репозиториев по умолчанию MariaDB будет запускаться автоматически. Чтобы проверить это, проверьте ее статус.

				
					
sudo systemctl status mariadb

				
			

Вы получите вывод, который будет выглядеть примерно так:

				
					
[secondary_label Output]

● mariadb.service - MariaDB 10.3.22 database server

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

     Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago

       Docs: man:mysqld(8)

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

   Main PID: 25914 (mysqld)

     Status: "Taking your SQL requests now..."

      Tasks: 31 (limit: 2345)

     Memory: 65.6M

     CGroup: /system.slice/mariadb.service

             └─25914 /usr/sbin/mysqld

. . .

				
			

Если MariaDB не запущена, вы можете воспользоваться командой sudo systemctl start mariadb для запуска.

Шаг 2 — Настройка MariaDB

Запустите скрипт безопасности, установленный в комплекте с MariaDB. При этом откроется серия диалогов, где вы можете внести некоторые изменения в параметры безопасности установки MariaDB:

				
					
sudo mysql_secure_installation

				
			

В первом диалоге вам нужно будет ввести пароль пользователя root для текущей базы данных. Поскольку мы еще не настроили его, нажмите ENTER, чтобы указать «отсутствует».

				
					
[secondary_label Output]

. . .

Enter current password for root (enter for none):

				
			

В следующем диалоге вам будет предложено задать пароль для пользователя root базы данных. В Ubuntu учетная запись root для MariaDB тесно связана с автоматизированным обслуживанием системы, так что мы не должны изменять настроенные методы аутентификации для этой учетной записи. Введите N и нажмите ENTER.

				
					
[secondary_label Output]

. . .



Set root password? [Y/n] <^>N<^>

				
			

Далее вы можете использовать клавиши Y и ENTER, чтобы принять ответы по умолчанию для всех последующих вопросов. В результате будет удален ряд анонимных пользователей и тестовая база данных, отключена возможность удаленного входа с правами root, а также будут загружены новые правила.

Шаг 3 — (необязательно) Создание административного пользователя с аутентификацией по паролю

При установке MariaDB 10.3 в системах Ubuntu для пользователя root в MariaDB настраивается аутентификация с помощью плагина unix_socket, а не с помощью пароля. Поскольку для ротации журналов, запуска и остановки сервера используется учетная запись root, лучше всего не менять учетные данные root. Команда поддержки пакета рекомендует создать отдельную административную учетную запись для доступа с паролем.

Для этого откройте командную строку MariaDB через терминал:

				
					
sudo mariadb

				
			

Затем создайте нового пользователя с правами root и с аутентификацией на основе пароля. Измените имя пользователя и пароль на предпочитаемые:

				
					
GRANT ALL ON *.* TO '<^>admin<^>'@'localhost' IDENTIFIED BY '<^>password<^>' WITH GRANT OPTION;

				
			

Очистите привилегии, чтобы они были сохранены и доступны в текущем сеансе:

				
					
FLUSH PRIVILEGES;

				
			

После этого закройте оболочку MariaDB:

				
					
exit

				
			

Вы можете протестировать нового пользователя с помощью клиентского инструмента mysqladmin, позволяющего запускать административные команды. Следующая команда mysqladmin выполняет подключение к MariaDB от имени пользователя admin и возвращает номер версии после ввода пароля пользователя в диалоге:

				
					
mysqladmin -u <^>admin<^> -p version

				
			

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

				
					
[secondary_label Output]

mysqladmin  Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64

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



Server version		10.3.22-MariaDB-1ubuntu1

Protocol version	10

Connection		Localhost via UNIX socket

UNIX socket		/var/run/mysqld/mysqld.sock

Uptime:			4 min 49 sec



Threads: 7  Questions: 467  Slow queries: 0  Opens: 177  Flush tables: 1  Open tables: 31  Queries per second avg: 1.615

				
			

Заключение

В этом обучающем модуле мы выполнили установку реляционной СУБД MariaDB и защитили ее с помощью скрипта mysql_secure_installation, входящего в комплект установки. Также у вас была возможность создать нового административного пользователя с аутентификацией на основе пароля.

Теперь, когда у вас есть запущенный и защищенный сервер MariaDB, вы можете воспользоваться некоторыми примерами следующих шагов, которые вы можете выполнить при работе с сервером: