В данном руководстве вы узнаете, как установить MariaDB 10.4 на серверах с Ubuntu 18.04 и 20.04. MariaDB — это надежная и устойчивая реляционная база данных с открытым исходным кодом, являющаяся форком MySQL. Многие дистрибутивы Linux перешли на MariaDB в качестве стандартного решения для серверной базы данных. MariaDB используется в таких крупных организациях, как Google, Wikipedia, Tencent, Verizon, Deutsche Bank и Huatai Securities, а также во многих других.
На момент создания данной статьи актуальной стабильной версией является MariaDB 10.4.8, которая была выпущена 11 сентября 2019 года. Ключевые изменения включают в себя:
- Плагин аутентификации unix_socket стал общепринятым на системах, аналогичных Unix.
- Таблица mysql. user больше не актуальна. Учетные записи пользователей и глобальные права теперь находятся в таблице mysql. global_priv.
- Таблица mysql. host больше не генерируется, так как она устарела.
- Galera была модернизирована с версии 3 до версии 4.
- И многое иное.
Все значимые версии MariaDB будут получать поддержку не менее 5 лет. Версия 10.4 MariaDB будет актуальна до июня 2024 года.
Содержание статьи
Инсталляция MariaDB 10.4 на Ubuntu 18.04 и 20.04 из официальных репозиториев.
В официальном репозитории Ubuntu доступен пакет MariaDB, однако его версия устарела. В Ubuntu 18.04 представлена только MariaDB 10.1, а в Ubuntu 20.04 — MariaDB 10.3. Последнюю версию можно установить из официального репозитория MariaDB.
Зайдите на сайт https://downloads.mariadb.org/mariadb/repositories и выберите свой дистрибутив Linux, версию, релиз и нужные зеркала репозитория. К примеру, я выбрал Ubuntu 18.04, MariaDB 10.4 и зеркало Limestone Networks, что видно на следующем снимке экрана.

Когда все опции будут выбраны, внизу страницы появятся персонализированные инструкции. Например, чтобы добавить репозиторий в Ubuntu 18.04, мне необходимо выполнить следующие команды.
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror. lstn.net/mariadb/repo/10.4/ubuntu bionic main'
Для добавления репозитория в Ubuntu 20.04 достаточно заменить слово bionic на focal в третьей команде.
После этого обновите список пакетов и установите сервер MariaDB.
sudo apt update sudo apt install mariadb-server
Пакет galera-4 будет установлен автоматически вместе с MariaDB. После завершения установки сервер MariaDB начнет работу. Чтобы проверить его состояние, используйте:
systemctl status mysql
systemctl status mariadb
Он проявляет активность и выполняет свою работу.

Совет: Нажмите Q, чтобы восстановить управление терминалом, если указанная команда не завершится мгновенно.
Если сервис не активен, вы можете активировать его вручную, используя команду:
sudo systemctl start mariadb
Чтобы активировать автоматический запуск при старте системы, выполните следующее.
sudo systemctl enable mariadb
Для доступа к монитору MariaDB выполните следующие шаги:
sudo mysql - u root
sudo mariadb - u root
При запросе пароля следует вводить пароль для пользователя sudo, а не пароль пользователя root в MariaDB.

Установленная версия сервера 10.4.8 была загружена из бинарного дистрибутива mariadb. org. Для выхода используйте
exit;
Начните выполнение сценария постинсталляции.
Для достижения наилучшей безопасности сервера MariaDB рекомендуется выполнить сценарий постинсталляции.
sudo mysql_secure_installation
MariaDB 10.04 применяет плагин аутентификации unix_socket, что позволяет пользователю root не вводить пароль. Когда скрипт запросит пароль для root, просто нажмите Enter. На следующие два вопроса ответьте «n».

После этого вы можете нажать клавишу Enter, чтобы ответить на все оставшиеся вопросы, что приведет к удалению анонимного пользователя, отключению удаленного доступа к root и удалению тестовой базы данных. Этот шаг является важным требованием для обеспечения безопасности базы данных MariaDB. (Имейте в виду, что Y написано с большой буквы, что указывает на выбор по умолчанию.)

InnoDB и XtraDB: Сравнение движков хранения данных.
До версии MariaDB 10.1 в качестве основного движка хранения использовался XtraDB, представляющий собой усовершенствованную версию InnoDB от MySQL. Однако со временем MySQL внедрил практически все улучшения, и InnoDB смог его догнать. В связи с этим, начиная с версии MariaDB 10.2, InnoDB стал основным движком.
Чтобы узнать, какой движок хранения установлен по умолчанию, откройте монитор MariaDB и выполните следующую команду.
show engines;
В MariaDB 10.1 данная команда выдает следующий результат, который свидетельствует о том, что XtraDB установлен в качестве основного движка.

В версиях MariaDB 10.2, 10.3 и 10.4 команда выше выдаёт результат, свидетельствующий о том, что InnoDB установлен в качестве стандартного движка.

Диагностика и решение проблем
Примечание: Данный совет по устранению проблем больше не актуален для MariaDB версии 10.4, так как в ней по умолчанию применяется плагин аутентификации unix_socket. Тем не менее, он может быть полезен, если вы все еще используете MariaDB 10.3.
Если вы ранее устанавливали MariaDB из официального репозитория Ubuntu, а сейчас планируете установить последнюю версию с сайта mariadb. org, то, скорее всего, возникнет ошибка при попытке авторизации в системе.
ОШИБКА 1524 (HY000): Плагин 'unix_socket' не загружен
Это обусловлено тем, что бинарный файл MariaDB. org по-прежнему применяет плагин mysql_native_password для аутентификации пользователей, в то время как версия MariaDB из репозитория Ubuntu использует плагин unix_socket. Первый требует от пользователя вводить пароль, тогда как второй позволяет выполнить команду для доступа без необходимости ввода пароля root MariaDB.
sudo mysql - u root
Пользователь root в MariaDB изначально настроен на аутентификацию через unix_socket, так как был установлен из репозитория Ubuntu. Однако, при установке нового бинарного файла с сайта mariadb. org, плагин unix_socket отключается, что приводит к указанной ошибке.
Чтобы продолжить использование метода unix_socket, измените файл 50-server. cnf.
sudo nano /etc/mysql/mariadb.conf.d/50-server. cnf
Вставьте следующую строку в секцию [mariadb] в самом низу.
plugin_load_add = auth_socket
Сохраните изменения и закройте.

