Как установить MariaDB на Debian 11
Введение
Стек LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Он предназначен для замены MySQL.
Краткая версия этого руководства по установке состоит из следующих трех шагов:
- Обновите индекс вашего пакета с помощью
apt
- Установите пакет
mariadb-server
с помощьюapt
. Пакет также включает соответствующие инструменты для взаимодействия с MariaDB. - Запустите прилагаемый скрипт безопасности
mysql_secure_installation
, чтобы ограничить доступ к серверу
- sudo apt update
- sudo apt install mariadb-server
- sudo mysql_secure_installation
В этом руководстве объясняется, как установить MariaDB на сервер Debian 11 и убедиться, что он работает и имеет безопасную начальную конфигурацию.
Предпосылки
- Чтобы следовать этому руководству, вам потребуется сервер под управлением Debian 11. На этом сервере должен быть пользователь без полномочий root и брандмауэр, настроенный с UFW. Настройте это, следуя нашему руководству по первоначальной настройке сервера для Debian 11.
Шаг 1 — Установка MariaDB
На момент написания этой статьи репозитории программного обеспечения Debian 11 по умолчанию включают версию MariaDB 10.5.15. Команда разработчиков пакетов Debian MySQL/MariaDB пометила его как вариант MySQL по умолчанию.
Чтобы установить его, обновите индекс пакетов на вашем сервере с помощью apt
:
- sudo apt update
Затем установите пакет:
- sudo apt install mariadb-server
Эти команды установят MariaDB, но не предложат вам установить пароль или внести какие-либо другие изменения в конфигурацию. Поскольку конфигурация по умолчанию оставляет вашу установку MariaDB небезопасной, вы будете использовать сценарий, предоставляемый пакетом mariadb-server
, для ограничения доступа к серверу и удаления неиспользуемых учетных записей.
Шаг 2 — Настройка MariaDB
Для новых установок MariaDB следующим шагом будет запуск прилагаемого сценария безопасности. Этот сценарий изменяет некоторые из менее безопасных параметров по умолчанию для таких вещей, как удаленный вход в систему root и примеры пользователей.
Запустите скрипт безопасности:
- sudo mysql_secure_installation
Это проведет вас через ряд подсказок, где вы можете внести некоторые изменения в параметры безопасности вашей установки MariaDB. Первое приглашение попросит вас ввести текущий пароль root базы данных. Поскольку вы еще не настроили его, нажмите ENTER
, чтобы указать \none.
OutputNOTE: 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. В Debian 11 корневая учетная запись для MariaDB тесно связана с автоматизированным обслуживанием системы, поэтому вам не следует изменять настроенные методы аутентификации для этой учетной записи.
Это позволит обновлению пакета сломать систему базы данных, удалив доступ к учетной записи администратора. Введите n
и нажмите ENTER
.
OutputChange the root password? [Y/n]
Позже вы узнаете, как настроить дополнительную учетную запись администратора для доступа по паролю, если аутентификация через сокет не подходит для вашего варианта использования.
Оттуда вы можете нажать Y
, а затем ENTER
, чтобы принять значения по умолчанию для всех последующих вопросов. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленный вход в систему root и загрузит эти новые правила, чтобы MariaDB немедленно реализовала внесенные вами изменения.
На этом вы завершили первоначальную настройку безопасности MariaDB. Следующий шаг является необязательным, хотя вам следует выполнить его, если вы предпочитаете аутентифицироваться на своем сервере MariaDB с помощью пароля.
Шаг 3 — (Необязательно) Создание пользователя-администратора, использующего аутентификацию по паролю
В системах Debian, использующих MariaDB 10.5, пользователь root MariaDB по умолчанию настроен на аутентификацию с помощью подключаемого модуля unix_socket
, а не с помощью пароля. Это позволяет повысить безопасность и удобство использования во многих случаях, но также может усложнить ситуацию, когда вам нужно предоставить права администратора внешней программе (например, phpMyAdmin).
Поскольку сервер использует корневую учетную запись для таких задач, как ротация журналов, а также запуск и остановка сервера, лучше не изменять данные аутентификации корневой учетной записи. Изменение учетных данных в файле конфигурации /etc/mysql/debian.cnf
изначально может работать, но обновления пакетов потенциально могут перезаписать эти изменения. Вместо изменения учетной записи root разработчики пакета рекомендуют создать отдельную административную учетную запись для доступа на основе пароля.
С этой целью мы создадим новую учетную запись с именем admin с теми же возможностями, что и учетная запись root, но настроенную для аутентификации по паролю. Откройте командную строку MariaDB с вашего терминала:
- sudo mariadb
Затем создайте нового пользователя с привилегиями root и доступом на основе пароля. Обязательно измените имя пользователя и пароль в соответствии с вашими предпочтениями:
- GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Сбросьте привилегии, чтобы убедиться, что они сохранены и доступны в текущем сеансе:
- FLUSH PRIVILEGES;
После этого выйдите из оболочки MariaDB:
- exit
Наконец, давайте протестируем установку MariaDB.
Шаг 4 — Тестирование MariaDB
При установке из репозиториев по умолчанию MariaDB запустится автоматически. Чтобы проверить это, проверьте его статус.
- sudo systemctl status mariadb
Вы получите вывод, похожий на следующий:
Output● mariadb.service - MariaDB 10.5.15 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, и вернуть версию:
- sudo mysqladmin version
Вы получите вывод, подобный этому:
Outputmysqladmin Ver 9.1 Distrib 10.5.15-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.15-MariaDB-0+deb11u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 4 min 20 sec
Threads: 1 Questions: 72 Slow queries: 0 Opens: 32 Open tables: 25 Queries per second avg: 0.276
Заключение
В этом руководстве вы установили систему управления реляционной базой данных MariaDB и защитили ее с помощью сценария mysql_secure_installation
, с которым она была установлена. У вас также была возможность создать нового пользователя с правами администратора, который использует аутентификацию по паролю перед тестированием функциональности сервера MariaDB.
Теперь, когда у вас есть работающий и безопасный сервер MariaDB, вот несколько примеров следующих шагов, которые вы можете предпринять для работы с сервером:
- Узнайте, как импортировать и экспортировать базы данных
- Попрактикуйтесь в выполнении SQL-запросов
- Включите MariaDB в более крупный стек приложений