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.
Читайте также: