Tutorial

Установка MariaDB в Ubuntu 18.04

Published on April 29, 2020
Русский
Установка MariaDB в Ubuntu 18.04

Введение

MariaDB — это система управления базами данных с открытым исходным кодом, которая часто используется в качестве альтернативы MySQL в составе популярного стека 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 в Ubuntu 18.04 и подтвердить, что она запущена и имеет безопасную первоначальную конфигурацию.

Предварительные требования

Для данного обучающего руководства вам потребуется следующее:

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

В Ubuntu 18.04 версия MariaDB 10.1 включена в репозитории пакетов APT по умолчанию.

Для ее установки обновите индекс пакетов на вашем сервере с помощью 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, чтобы указать «отсутствует».

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

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

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

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

Поскольку для ротации журналов, запуска и остановки сервера используется учетная запись root, лучше всего не менять учетные данные root. Изменение учетных данных в файле конфигурации /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

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

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

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

  1. sudo systemctl status mariadb

Вы получите вывод, который будет выглядеть примерно так:

Output
● 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

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

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

  1. sudo mysqladmin version

Результат должен выглядеть примерно следующим образом:

Output
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

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

  1. mysqladmin -u admin -p version

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

Заключение

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

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

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel