Бесплатная миграция IT-инфраструктуры в облако

Установка MariaDB в Ubuntu 20.04

Никита Кулижников
Никита Кулижников
Технический писатель
30 мая 2022 г.
4280
7 минут чтения
Средний рейтинг статьи: 5

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

Установка Mariadb В Ubuntu 20.04

Она включает всего три этапа – понадобится скачать обновление индекса пакетов, инсталлировать mariadb-server и активировать скрипт безопасности, ограничивающий доступ посторонних к удаленному хосту. В качестве тестовой базы рекомендуем использовать облачные серверы, например, арендованные у провайдера Timeweb Cloud.

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.

Кратко последовательность команд выглядит так:

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

Все примеры будем приводить на базе предустановленной операционной системы Ubuntu. Перед изучением материала желательно провести первоначальную настройку. Например, создать аккаунт без привилегий root (достаточно прав администратора), задать базовые правила брандмауэру UFW. 

cloud

Этап 1. Инсталлируем MariaDB

Репозитории регулярно обновляют, в них размещают стабильные версии утилит. Дистрибутивы же включают устаревшие релизы, актуальные на момент сборки, поэтому их необходимо обновлять, чтобы избежать несовместимости. Выполняется процедура командой:

sudo apt update

Теперь можно устанавливать нужный нам пакет:

sudo apt install mariadb-server

Инсталляция проходит без запроса пароля, без внесения иных изменений в конфигурацию. В таком виде использовать MariaDB на сервере нежелательно, потому что она будет работать в небезопасном режиме. Чтобы исправить ситуацию применим скрипт mysql_secure_installation, поставляемый в комплекте с программным обеспечением. Он блокирует доступ к серверу, исключит учетки.

Этап 2. Настроим MariaDB

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

Запуск скрипта следующей командой:

sudo mysql_secure_installation

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

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, we'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):

Следующий диалог предлагает ввести пароль пользователя root в MariaDB. Это стоит сделать сразу, если используется метод аутентификации, отличный от unix socket, иначе любой желающий сможет зайти в систему с пустым или вообще любым паролем. Поэтому отвечаем на запрос Y (Yes) и нажимаем Enter.

. . .
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] Y

Теперь взаимодействие с MariaDB будет возможно только после ввода правильного пароля. Завершим настройку – на все последующие вопросы можно ответить утвердительно нажатием клавиши Y (Yes) и подтверждением кнопкой Enter.

Система самостоятельно удалит тестовую БД, анонимные учетки, отключит доступ через аккаунт root, загрузит обновленные правила. Установка и настройка пакета MariaDB завершена, можно приступать к эксплуатации. Или пройти необязательный этап по созданию администратора для активации доступа по паролю.

Этап 3. Создадим аккаунт с администраторскими правами

По умолчанию в Ubuntu установка MariaDB осуществляется при помощи плагина unix_socket, поэтому запрос пароля не применяется. В большинстве случаев такой подход дает высокий уровень безопасности. Но одновременно усложняет администрирование, например, через phpMyAdmin. При старте-остановке сервера, управлении журналами используется учетка root.

Именно поэтому мы не стали менять ее данные. Но при обновлении пакета они могут измениться «самостоятельно», поэтому лучше сразу включить работу по паролю. В качестве примера создадим учетку с названием admin и зададим ей те же права, что и у root. Сначала откройте командную строку MariaDB:

sudo mariadb

И уже в ней создайте нового пользователя:

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

Вместо admin и password задайте любые предпочитаемые комбинации. Так, имя часто задают «нестандартное», чтобы усложнить взлом путем подбора пароля. После создания аккаунта сделаем очистку привилегий с сохранением настроек в текущем сеансе.

FLUSH PRIVILEGES;

Теперь можно закрывать оболочку:

exit;

Остается провести тестирование MariaDB, чтобы убедиться в корректности настроек.

Этап 4. Диагностика

При инсталляции системы СУБД из официального репозитория устанавливает настройки, чтобы модуль MariaDB запускался автоматом. Но все равно лучше вручную проверить его статус:

sudo systemctl status mariadb

Вывод на экран будет выглядеть так:

mariadb.service - MariaDB 10.3.22 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-05-12 15:28:13 UTC; 2min 45s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 25914 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 2345)
     Memory: 65.6M
     CGroup: /system.slice/mariadb.service
           └─25914 /usr/sbin/mysqld

Если утилита не запущена, это нужно сделать вручную, заодно следует запустить службу:

sudo systemctl enable mariadb
sudo systemctl start mariadb

После принудительного запуска можно сделать пробное подключение к базе данных при помощи mysqladmin. Эта утилита позволяет обращаться к БД с правами администратора, запускать команды и изменять настройки. Приведем пример подключения с выводом номера версии:

sudo mysqladmin version

Вывод на экран будет выглядеть так:

mysqladmin  Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2019, Oracle, MariaDB Corporation Ab and others.

Server version        10.3.22-MariaDB-1ubuntu1
Protocol version    10
Connection        Localhost via UNIX socket
UNIX socket        /var/run/mysqld/mysqld.sock
Uptime:            5 min 39 sec

Threads: 7  Questions: 467  Slow queries: 0  Opens: 177  Flush tables: 1  Open tables: 31  Queries per second avg: 1.615

Если был настроен доступ при помощи пароля администратора, подойдет команда:

mysqladmin -u admin -p version

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

Разверните MariaDB на серверах Timeweb Cloud

Выводы

Мы завершили обзор процедуры установки и настройки СУБД MariaDB. Сразу разобрали способ защиты от несанкционированного доступа к базе данных и создание нового пользователя, который будет иметь доступ к информации наравне с root. 

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
30 мая 2022 г.
4280
7 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев