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

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

Если вкратце, то установить MariaDB можно в три этапа:

  • Обновить индекс пакетов с помощью apt
  • Установить пакет mariadb-server с помощью менеджера пакетов apt (в пакет включены все необходимые инструменты для взаимодействия с MariaDB).
  • Запустить сценарий безопасности mysql_secure_installation, который ограничит доступ к серверу.

Для всего этого нам понадобятся такие команды:

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

Этот мануал поможет вам установить MariaDB на сервер Ubuntu 18.04, проверить установку и выполнить настройку безопасности.

Требования

Для работы вам понадобится сервер Ubuntu 18.04 с пользователем sudo. Все инструкции можно найти в этом мануале.

1: Установка MariaDB

В Ubuntu 18.04 версия MariaDB 10.1 включена в репозиторий пакетов APT по умолчанию.

Чтобы установить эту версию, сначала обновите индекс пакетов на вашем сервере с помощью менеджера пакетов apt:

sudo apt update

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

sudo apt install mariadb-server

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

2: Настройка MariaDB

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

Запустите скрипт:

sudo mysql_secure_installation

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

Следующее окно спросит, хотите ли вы установить root пароль. Введите N и нажмите клавишу Enter. В Ubuntu root пользователь MariaDB тесно связан с автоматическим обслуживанием системы, поэтому изменять настроенные методы аутентификации для этой учетной записи нельзя. Иначе при обновлении MariaDB пароль был бы сброшен и вы бы потеряли доступ к учетной записи root. Позже мы расскажем о том, как создать дополнительную учетную запись администратора и настроить парольный доступ (если аутентификация по сокету вам не подходит).

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

3: Настройка аутентификации и привилегий (опционально)

В системе Ubuntu пользователь root по умолчанию поддерживает аутентификацию с помощью плагина unix_socket, а не через пароль. Это во многих случаях повышает безопасность и удобство использования, но также может усложнить работу, если вам необходимо разрешить доступ внешней программе (например, phpMyAdmin).

Поскольку сервер использует root-пользователя для таких задач, как ротация логов, запуск и остановка сервера, метод аутентификации учетной записи root лучше не менять. Изменение учетных данных в файле /etc/mysql/debian.cnf может сработать на начальном этапе, но последующее обновление пакетов перезапишет все изменения. Вместо этого разработчики рекомендуют создать отдельную учетную запись администратора с парольной аутентификацией.

Итак, создайте аккаунт под названием admin с теми же правами, что и у root, но с поддержкой парольной аутентификации. Для этого откройте командную строку MariaDB:

sudo mysql

Затем создайте нового пользователя с привилегиями root и поддержкой парольной аутентификации. Укажите в команде имя и пароль своего пользователя.

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

Сбросьте привилегии, чтобы обновить настройки:

FLUSH PRIVILEGES;

Закройте оболочку MariaDB:

exit

4: Тестирование MariaDB

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

sudo systemctl status mariadb

Вы получите подобный вывод:

mariadb.service - MariaDB 10.1.44 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-03-25 16:51:16 UTC; 8min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 22559 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 1152)
CGroup: /system.slice/mariadb.service
└─22559 /usr/sbin/mysqld
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: mysql
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 6/7: Checking and upgrading tables
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Processing databases
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: information_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: OK
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22658]: Checking for insecure root accounts.
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22663]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
If MariaDB isn’t running, you can start it with the command sudo systemctl start mariadb.

Если MariaDB по какой-то причине не запустилась, введите:

sudo systemctl start mariadb

Для дополнительной проверки можно подключиться к базе данных с помощью mysqladmin (это клиент, который позволяет запускать административные команды). Например, эта команда подключится к MariaDB как root и выведет версию с помощью Unix-сокета:

sudo mysqladmin version

Вы получите такой вывод:

mysqladmin  Ver 9.1 Distrib 10.1.44-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version      10.1.44-MariaDB-0ubuntu0.18.04.1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         10 min 9 sec
Threads: 1  Questions: 445  Slow queries: 0  Opens: 167  Flush tables: 1  Open tables: 30  Queries per second avg: 0.730

Если вы создали дополнительного администратора, вы можете выполнить эту операцию с помощью такой команды:

mysqladmin -u admin -p version

Теперь СУБД MariaDB запущена и работает должным образом.

Заключение

Вы успешно создали базовую установку MariaDB.

Теперь вы можете добавить в нее данные или обеспечить более надежную защиту своему серверу. Также можно установить другие программы из стека LEMP или LАMP.

Читайте также:

Tags: , ,

Добавить комментарий