Введение
MariaDB – это система управления реляционными базами данных с открытым исходным кодом, часто используемая как альтернатива MySQL в качестве базы данных в популярном стеке LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она предназначена для замены MySQL.
Краткое руководство по установке состоит из трех шагов:
- Обновите свой индекс пакетов, используя
apt
- Установите пакет
mariadb-server
с помощьюapt
. Этот пакет также подтягивает связанные инструменты для взаимодействия с MariaDB - Запустите включенный скрипт безопасности
mysql_secure_installation
, чтобы ограничить доступ к серверу
Это руководство покажет, как установить MariaDB на сервере Ubuntu 22.04 и убедиться, что он работает и имеет безопасную начальную конфигурацию.
Предварительные требования
- Для следования этому руководству вам понадобится сервер с установленной Ubuntu 22.04. На этом сервере должен быть создан неадминистративный пользователь и настроен брандмауэр с помощью UFW. Настройте это, следуя нашему руководству по начальной настройке сервера для Ubuntu 22.04.
Шаг 1 — Установка MariaDB
На момент написания данного текста в репозиториях APT Ubuntu 22.04 по умолчанию содержится версия MariaDB 10.5.12.
Для установки обновите индекс пакетов на вашем сервере с помощью apt
:
Затем установите пакет:
Эти команды установят MariaDB, но не запросят у вас установку пароля или внесут какие-либо другие изменения в конфигурацию. Поскольку конфигурация по умолчанию оставляет вашу установку MariaDB небезопасной, вы будете использовать сценарий, предоставляемый пакетом mariadb-server
, чтобы ограничить доступ к серверу и удалить неиспользуемые учетные записи.
Шаг 2 — Настройка MariaDB
Для новых установок MariaDB следующим шагом является запуск встроенного сценария безопасности. Этот сценарий изменяет некоторые менее безопасные параметры по умолчанию, такие как удаленный вход для root и образцовые пользователи.
Запустите скрипт безопасности:
Этот скрипт задаст вам несколько вопросов, где вы сможете внести изменения в параметры безопасности вашей установки MariaDB. Первый запрос попросит вас ввести текущий пароль root базы данных. Поскольку вы еще не установили его, нажмите ENTER
, чтобы указать “нет”.
OutputNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, you'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
Вас спросят, хотите ли вы переключиться на аутентификацию через unix-сокет. Поскольку у вас уже защищенная учетная запись root, вы можете пропустить этот шаг. Введите n
и затем нажмите ENTER
.
Output. . .
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
Следующий запрос спрашивает, хотели бы вы установить пароль для учетной записи root базы данных. На Ubuntu учетная запись root для MariaDB тесно связана с автоматизированным обслуживанием системы, поэтому не следует изменять настроенные методы аутентификации для этой учетной записи.
Подобные изменения могут привести к тому, что обновление пакета сломает систему базы данных, удалив доступ к учетной записи администратора. Введите n
и затем нажмите ENTER
.
Output. . .
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] n
Позже вы научитесь настраивать дополнительную учетную запись администратора для доступа по паролю, если аутентификация через сокет не подходит для вашего случая использования.
Затем вы можете нажать Y
и затем ENTER
, чтобы принять значения по умолчанию для всех последующих вопросов. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленный вход под root, и загрузит эти новые правила, чтобы MariaDB сразу внесла внесенные вами изменения.
С этим вы завершили начальную настройку безопасности MariaDB. Следующим шагом является необязательный, но рекомендуемый, если вы предпочитаете аутентифицироваться на своем сервере MariaDB с помощью пароля.
Шаг 3 — (Необязательный) Создание административного пользователя с аутентификацией по паролю
На системах Ubuntu, работающих под управлением MariaDB 10.5, пользователь MariaDB root по умолчанию настроен на аутентификацию с использованием плагина unix_socket
, а не с паролем. Это обеспечивает большую безопасность и удобство во многих случаях, но также может усложнить задачу, когда необходимо предоставить внешней программе (например, phpMyAdmin) административные права.
Поскольку сервер использует учетную запись root для задач, таких как вращение журналов и запуск и остановка сервера, лучше не изменять данные аутентификации учетной записи root. Изменение учетных данных в файле конфигурации /etc/mysql/debian.cnf
может сработать в начале, но обновления пакетов могут потенциально перезаписать эти изменения. Вместо изменения учетной записи root рекомендуется создать отдельную административную учетную запись для доступа с использованием пароля.
Для этого мы создадим новую учетную запись с именем admin с теми же возможностями, что и у учетной записи root, но настроим для аутентификации по паролю. Откройте приглашение MariaDB из вашего терминала:
Затем создайте нового пользователя с привилегиями root и доступом по паролю. Убедитесь, что имя пользователя и пароль соответствуют вашим предпочтениям:
Очистите привилегии, чтобы убедиться, что они сохранены и доступны в текущей сессии:
После этого выйдите из оболочки MariaDB:
Наконец, давайте протестируем установку MariaDB.
Шаг 4 — Тестирование MariaDB
При установке из стандартных репозиториев MariaDB будет автоматически запускаться. Чтобы проверить это, проверьте его статус.
Вы получите вывод, аналогичный следующему:
Output● mariadb.service - MariaDB 10.5.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
. . .
Если MariaDB не запущена, вы можете запустить её командой sudo systemctl start mariadb
.
Дополнительно вы можете попробовать подключиться к базе данных, используя инструмент mysqladmin
, который является клиентом, позволяющим выполнять административные команды. Например, эта команда указывает подключиться к MariaDB как root с использованием Unix-сокета и вернуть версию:
Вы получите вывод, аналогичный этому:
Outputmysqladmin Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.12-MariaDB-1build1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 15 min 53 sec
Threads: 1 Questions: 482 Slow queries: 0 Opens: 171 Open tables: 28 Queries per second avg: 0.505
Заключение
В этом руководстве вы установили систему управления реляционными базами данных MariaDB и обеспечили ее безопасность, используя скрипт mysql_secure_installation
, который был предустановлен. Вы также имели возможность создать нового административного пользователя с аутентификацией по паролю перед тестированием функциональности сервера MariaDB.
Теперь, когда у вас есть работающий и безопасный сервер MariaDB, вот несколько примеров следующих шагов, которые вы можете предпринять для работы с сервером:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-22-04