Tutorial

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

Published on June 11, 2020
Русский
Установка MariaDB в Ubuntu 20.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 20.04 и подтвердить, что она запущена и имеет безопасную первоначальную конфигурацию.

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

Для выполнения этого обучающего модуля вам потребуется сервер под управлением Ubuntu 20.04. На сервере должен быть пользователь без привилегий root с правами администратора и брандмауэр, настроенный с помощью UFW. Вы можете выполнить настройку, следуя указаниям документа «Начальная настройка сервера для Ubuntu 20.04».

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

На момент подготовки этого обучающего модуля в репозиториях APT по умолчанию в Ubuntu 20.04 содержалась версия MariaDB 10.3.

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

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, we'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):

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

Output
. . . OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] N

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

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

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

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

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

Поскольку для ротации журналов, запуска и остановки сервера используется учетная запись root, лучше всего не менять учетные данные root. Изменение учетных данных в файле конфигурации /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.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 25914 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 2345) Memory: 65.6M CGroup: /system.slice/mariadb.service └─25914 /usr/sbin/mysqld . . .

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

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

  1. sudo mysqladmin version

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

Output
mysqladmin Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.3.22-MariaDB-1ubuntu1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 4 min 49 sec Threads: 7 Questions: 467 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 1.615

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

  1. mysqladmin -u admin -p version

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

Заключение

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

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

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

Learn more about our products

About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean



Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
2 Comments


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!

This comment has been deleted

    This comment has been deleted

      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!

      Become a contributor for community

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

      DigitalOcean Documentation

      Full documentation for every DigitalOcean product.

      Resources for startups and SMBs

      The Wave has everything you need to know about building a business, from raising funding to marketing your product.

      Get our newsletter

      Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

      New accounts only. By submitting your email you agree to our Privacy Policy

      The developer cloud

      Scale up as you grow — whether you're running one virtual machine or ten thousand.

      Get started for free

      Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

      *This promotional offer applies to new accounts only.