Введение

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

Краткая версия этого руководства по установке состоит из этих трех шагов:

  • Обновление индекса пакетов с помощью apt.
  • Установка пакета mariadb-server с помощью apt. Пакет также получает связанные инструменты для взаимодействия с MariaDB.
  • Запуск встроенного скрипта безопасности mysql_secure_installation для ограничения доступа к серверу.
				
					
sudo apt update

sudo apt install mariadb-server

sudo mysql_secure_installation

				
			

Из этого руководства вы узнаете, как установить MariaDB в Ubuntu 18.04 и подтвердить, что она запущена и имеет безопасную первоначальную конфигурацию.

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

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

Для данного обучающего руководства вам потребуется следующее:

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

В Ubuntu 18.04 версия MariaDB 10.1 включена в репозитории пакетов APT по умолчанию.

Для ее установки обновите индекс пакетов на вашем сервере с помощью 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 базы данных. Введите N и нажмите ENTER. В Ubuntu учетная запись root для MariaDB тесно связана с автоматизированным обслуживанием системы, так что мы не должны изменять настроенные методы аутентификации для этой учетной записи. Это позволит нам обновить пакет для уничтожения системы базы данных посредством удаления доступа к административной учетной записи. Позднее мы расскажем о том, как настроить дополнительную административную учетную запись для доступа по паролю, если аутентификация через сокет не подходит для вашего случая.

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

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

При установке MariaDB 10.1 в системах Ubuntu для пользователя root user MariaDB настраивается аутентификация с помощью плагина unix_socket, а не с помощью пароля. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить права администратора внешней программе (например, phpMyAdmin).

Поскольку для ротации журналов, запуска и остановки сервера используется учетная запись root, лучше всего не менять учетные данные root. Изменение учетных данных в файле конфигурации /etc/mysql/debian.cnf может работать на начальном этапе, но при обновлении пакета изменения могут быть перезаписаны. Вместо изменения учетной записи root, мантейнеры пакетов рекомендуют создать отдельную административную учетную запись для доступа по паролю.

Для этого мы создадим новую учетную запись с именем admin и теми же возможностями, которые есть у учетной записи root, но настроим для нее аутентификацию по паролю. Для этого откройте командную строку MariaDB через терминал:

				
					
sudo mysql

				
			

Теперь мы можем создать нового пользователя с привилегиями root и доступом с использованием пароля. Измените имя пользователя и пароль на желаемые:

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

				
			

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

				
					
FLUSH PRIVILEGES;

				
			

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

				
					
exit

				
			

Теперь давайте проверим установку MariaDB.

Шаг 4 — Тестирование MariaDB

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

				
					
sudo systemctl status mariadb

				
			

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

				
					
[secondary_label Output]

● mariadb.service - MariaDB 10.1.44 database server

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

   Active: <^>active<^> (running) since Wed 2020-03-25 16:51:16 UTC; 8min ago

     Docs: man:mysqld(8)

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

 Main PID: 22559 (mysqld)

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

    Tasks: 27 (limit: 1152)

   CGroup: /system.slice/mariadb.service

           └─22559 /usr/sbin/mysqld



Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: mysql

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 6/7: Checking and upgrading tables

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Processing databases

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: information_schema

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 7/7: Running 'FLUSH PRIVILEGES'

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: <^>OK<^>

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22658]: Checking for insecure root accounts.

Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22663]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

				
			

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

В качестве дополнительной проверки вы можете попробовать подключиться к базе данных с помощью инструмента mysqladmin, который позволяет запускать команды администрирования. Например, эта команда позволяет подключиться к MariaDB в качестве root user и вернуть версию с помощью сокета Unix:

				
					
sudo mysqladmin version

				
			

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

				
					
[secondary_label Output]

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

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



Server version		10.1.44-MariaDB-0ubuntu0.18.04.1

Protocol version	10

Connection		Localhost via UNIX socket

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

Uptime:			10 min 9 sec



Threads: 1  Questions: 445  Slow queries: 0  Opens: 167  Flush tables: 1  Open tables: 30  Queries per second avg: 0.730

				
			

Если вы настроили отдельного пользователя для администрирования с аутентификацией по паролю, вы можете выполнить эту операцию, введя следующую команду:

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

				
			

Это означает, что MariaDB запущена и работает и что ваш пользователь сможет успешно пройти аутентификацию.

Заключение

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

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

Также вы можете включить MariaDB в более крупный стек приложения: