Поиск по сайту:

Как установить MariaDB на Debian 11


Введение

Стек LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Он предназначен для замены MySQL.

Краткая версия этого руководства по установке состоит из следующих трех шагов:

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

  1. sudo apt update
  2. sudo apt install mariadb-server
  3. 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:

  1. sudo apt update

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

  1. sudo apt install mariadb-server

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

Шаг 2 — Настройка MariaDB

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

Запустите скрипт безопасности:

  1. sudo mysql_secure_installation

Это проведет вас через ряд подсказок, где вы можете внести некоторые изменения в параметры безопасности вашей установки MariaDB. Первое приглашение попросит вас ввести текущий пароль root базы данных. Поскольку вы еще не настроили его, нажмите ENTER, чтобы указать \none.

Output
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, 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.

Output
Change 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 с вашего терминала:

  1. sudo mariadb

Затем создайте нового пользователя с привилегиями root и доступом на основе пароля. Обязательно измените имя пользователя и пароль в соответствии с вашими предпочтениями:

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

Сбросьте привилегии, чтобы убедиться, что они сохранены и доступны в текущем сеансе:

  1. FLUSH PRIVILEGES;

После этого выйдите из оболочки MariaDB:

  1. exit

Наконец, давайте протестируем установку MariaDB.

Шаг 4 — Тестирование MariaDB

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

  1. 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, и вернуть версию:

  1. sudo mysqladmin version

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

Output
mysqladmin 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 в более крупный стек приложений