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.
Читайте также: