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

MariaDB – это открытая реляционная система управления базами данных (СУБД), которая является частью стека LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Для управления данными MariaDB использует SQL (Structured Query Language). MariaDB – это форк проекта MySQL, разработанный и поддерживаемый создателями MySQL в 2009 году из-за вопросов лицензирования.

Если вкратце, то установить MariaDB можно в три этапа: обновить индекс локальных пакетов, установить пакет mariadb-server и запустить сценарий безопасности:

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

В этом мануале мы более подробно расскажем об установке и настройке MariaDB 10.3 на сервер Debian 10.

Требования

  • Сервер Debian 10.
  • Пользователь с доступом к sudo.
  • Базовый брандмауэр.

Все необходимые инструкции можно найти в руководстве по начальной настройке сервера.

1: Установка MariaDB

Debian 10 содержит пакет MariaDB 10.3 в стандартном репозитории. Это его версия MySQL/MariaDB по умолчанию.

Чтобы установить ее, обновите индекс пакетов:

sudo apt update

Теперь установите пакет:

sudo apt install mariadb-server

Команда установит MariaDB, но не предложит вам выбрать пароль или изменить другие настройки. На данный момент установка MariaDB имеет несколько уязвимостей, которые нужно устранить. Для этого пакет mariadb-server предоставляет специальный скрипт.

2: Настройка MariaDB

После завершения установки нужно запустить сценарий безопасности, который удалит ненадёжные параметры и защитит БД от несанкционированного доступа.

sudo mysql_secure_installation

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

В следующем запросе скрипт предложит настроить пароль root для базы данных. Введите N и нажмите клавишу Enter. В Debian учетная запись root MariaDB тесно связана с автоматизированным обслуживанием системы, поэтому изменять стандартные методы аутентификации этой учетной записи нельзя. Иначе при обновлении пакета БД может повредиться, а доступ к учетной записи root может быть утрачен. Позже мы рассмотрим, как настроить дополнительную учетную запись администратора, если аутентификация сокетов вам не подходит.

На остальные вопросы можно нажать Y и Enter. Это удалит анонимных пользователей и тестовые базы данных, отключит удалённый root логин и обновит текущие настройки MariaDB.

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

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

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

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

sudo mysql

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

MariaDB [(none)]> GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

Сбросьте привилегии:

MariaDB [(none)]> FLUSH PRIVILEGES;

Закройте оболочку MariaDB:

MariaDB [(none)]> exit

4: Тестирование MariaDB

При установке из стандартного репозитория СУБД MariaDB запускается автоматически. Чтобы убедиться в этом, проверьте состояние сервиса:

sudo systemctl status mariadb

Вы получите такой вывод:

mariadb.service - MariaDB 10.3.15 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-07-12 20:35:29 UTC; 47min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 2036 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 30 (limit: 2378)
Memory: 76.1M
CGroup: /system.slice/mariadb.service
└─2036 /usr/sbin/mysqld
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 6/7: Checking and upgrading tables
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Running 'mysqlcheck' with connection arguments: --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Connecting to localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Disconnecting from localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Processing databases
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: information_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: performance_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: OK
Jul 12 20:35:30 deb-mariadb1 /etc/mysql/debian-start[2132]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

Если MariaDB по какой-то причине не запустилась, введите:

sudo systemctl start mariadb

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

sudo mysqladmin version
mysqladmin  Ver 9.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version      10.3.15-MariaDB-1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         48 min 14 sec
Threads: 7  Questions: 474  Slow queries: 0  Opens: 177  Flush tables: 1  Open tables: 31  Queries per second avg: 0.163

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

mysqladmin -u admin -p version

Теперь СУБД MariaDB запущена и работает должным образом.

Заключение

Вы успешно создали базовую установку MariaDB.

Теперь вы можете добавить в нее данные или обеспечить более надежную защиту своему серверу. Также можно установить другие программы из стека LEMP или LАMP.

Читайте также:

Tags: ,