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

Вступление

MariaDB - это система управления базами данных с открытым исходным кодом, обычно используемая в качестве альтернативы для части MySQL популярной https://www.digitalocean.com/community/tutorials/how-to- install-linux-apache-mariadb-php-lamp-stack-debian10 [LAMP] (Linux, Apache, MySQL, PHP / Python / Perl) стек. Он предназначен для замены MySQL и Debian и теперь поставляется только с пакетами MariaDB. Если вы попытаетесь установить пакеты, относящиеся к серверу MySQL, вы получите вместо этого совместимые замещающие версии MariaDB.

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

  • Обновите индекс вашего пакета, используя + apt +

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

  • Запустите включенный скрипт безопасности «+ mysql_secure_installation +», чтобы ограничить доступ к серверу.

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

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

Предпосылки

Чтобы следовать этому уроку, вам понадобится:

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

В Debian 10 версия MariaDB 10.3 включена в репозитории пакетов APT по умолчанию. Он помечен как вариант MySQL по умолчанию командой разработчиков Debian MySQL / MariaDB.

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

sudo apt update

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

sudo apt install mariadb-server

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

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

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

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

sudo mysql_secure_installation

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

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

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

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

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

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

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

sudo mysql

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

MariaDB [(none)]> GRANT ALL ON *.* TO ''@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;

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

MariaDB [(none)]> FLUSH PRIVILEGES;

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

MariaDB [(none)]> exit

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

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

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

sudo systemctl status mariadb

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

Выход

● mariadb.service - MariaDB 10.3.15 database server
  Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
  Active:  since Fri 2019-07-12 20:35:29 UTC; 47min ago
    Docs: man:mysqld(8)
          https://mariadb.com/kb/en/library/systemd/
Main PID: 2036 (mysqld)
  Status: "Taking your SQL requests now..."
   Tasks: 30 (limit: 2378)
  Memory: 76.1M
  CGroup: /system.slice/mariadb.service
          └─2036 /usr/sbin/mysqld

Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 6/7: Checking and upgrading tables
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Running 'mysqlcheck' with connection arguments: --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Connecting to localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Disconnecting from localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Processing databases
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: information_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: performance_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]:
Jul 12 20:35:30 deb-mariadb1 /etc/mysql/debian-start[2132]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

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

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

sudo mysqladmin version

Вы должны получить вывод, похожий на этот:

Outputmysqladmin  Ver 9.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Server version      10.3.15-MariaDB-1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         48 min 14 sec

Threads: 7  Questions: 474  Slow queries: 0  Opens: 177  Flush tables: 1  Open tables: 31  Queries per second avg: 0.163

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

mysqladmin -u  -p version

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

Заключение

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

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

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

Related