Как установить MariaDB на Ubuntu 22.04

Введение

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

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

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

Это руководство покажет, как установить MariaDB на сервере Ubuntu 22.04 и убедиться, что он работает и имеет безопасную начальную конфигурацию.

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

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

На момент написания данного текста в репозиториях APT Ubuntu 22.04 по умолчанию содержится версия MariaDB 10.5.12.

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

  1. sudo apt update

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

  1. sudo apt install mariadb-server

Эти команды установят MariaDB, но не запросят у вас установку пароля или внесут какие-либо другие изменения в конфигурацию. Поскольку конфигурация по умолчанию оставляет вашу установку MariaDB небезопасной, вы будете использовать сценарий, предоставляемый пакетом mariadb-server, чтобы ограничить доступ к серверу и удалить неиспользуемые учетные записи.

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

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

Запустите скрипт безопасности:

  1. sudo mysql_secure_installation

Этот скрипт задаст вам несколько вопросов, где вы сможете внести изменения в параметры безопасности вашей установки MariaDB. Первый запрос попросит вас ввести текущий пароль root базы данных. Поскольку вы еще не установили его, нажмите ENTER, чтобы указать “нет”.

Output
NOTE: 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 из вашего терминала:

  1. sudo mariadb

Затем создайте нового пользователя с привилегиями root и доступом по паролю. Убедитесь, что имя пользователя и пароль соответствуют вашим предпочтениям:

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

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

  1. FLUSH PRIVILEGES;

После этого выйдите из оболочки MariaDB:

  1. exit

Наконец, давайте протестируем установку MariaDB.

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

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

  1. sudo systemctl status 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-сокета и вернуть версию:

  1. sudo mysqladmin version

Вы получите вывод, аналогичный этому:

Output
mysqladmin 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