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

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


Введение

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

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

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

  1. sudo apt update
  2. sudo apt install mariadb-server
  3. sudo mysql_secure_installation

В этом руководстве объясняется, как установить MariaDB версии 10.3 на сервер Debian 10 и убедиться, что он работает и имеет безопасную начальную конфигурацию.

Предпосылки

Для выполнения этого руководства вам понадобится один сервер Debian 10, настроенный пользователем без полномочий root с привилегиями sudo и брандмауэром. Вы можете настроить это, следуя нашему руководству по начальной настройке сервера.

Шаг 1 — Установка MariaDB

В Debian 10 версия MariaDB 10.3 включена в репозитории пакетов APT по умолчанию. Команда разработчиков пакетов 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.

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

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

Шаг 3 — (Необязательно) Настройка аутентификации пользователя и привилегий

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

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

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

  1. sudo mysql

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

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

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

  1. FLUSH PRIVILEGES;

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

  1. exit
Output
Bye

Далее давайте проверим установку MariaDB.

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

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

  1. sudo systemctl status mariadb

Вы получите вывод, похожий на следующий:

Output
● mariadb.service - MariaDB 10.3.31 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: Active: active (running) since Mon 2022-03-14 18:33:32 UTC; 2min 2s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 3229 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 4915) Memory: 74.4M CGroup: /system.slice/mariadb.service └─3229 /usr/sbin/mysqld Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: performance_schema Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Phase 6/7: Checking and u Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Running 'mysqlcheck' with Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: # Connecting to localhost Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: # Disconnecting from loca Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Processing databases Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: information_schema Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: performance_schema Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Phase 7/7: Running 'FLUSH Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: OK

Если MariaDB не запущена, вы можете запустить ее с помощью команды sudo systemctl start mariadb.

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

  1. sudo mysqladmin version

Ваш вывод должен быть похож на следующий:

Output
mysqladmin Ver 9.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.3.31-MariaDB-0+deb10u1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 3 min 6 sec Threads: 6 Questions: 473 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 2.543

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

  1. mysqladmin -u admin -p version
Output
Ver 9.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.3.31-MariaDB-0+deb10u1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 7 min 11 sec Threads: 6 Questions: 474 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 1.099

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

Заключение

В этом руководстве вы установили MariaDB в качестве SQL-сервера. В процессе установки вы также обезопасили сервер. При желании вы также создали отдельного пользователя, чтобы обеспечить административный доступ к MariaDB через обновления пакетов.

Теперь, когда у вас есть работающий и безопасный сервер MariaDB, вот несколько примеров следующих шагов, которые вы можете предпринять для работы с сервером:

  • Импорт и экспорт баз данных

Вы также можете включить MariaDB в более крупный стек приложений:

  • Как установить Linux, Nginx, MariaDB, PHP (стек LEMP) в Debian 10