MariaDB — это система управления реляционными базами данных с открытым исходным кодом, которая часто используется в качестве альтернативы MySQL в составе популярного набора LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она представляет собой упрощенную замену MySQL.
Краткая версия этого руководства по установке состоит из этих трех шагов:
apt
.mariadb-server
с помощью apt
. Пакет также получает связанные инструменты для взаимодействия с MariaDB.mysql_secure_installation
для ограничения доступа к серверу.- sudo apt update
- sudo apt install mariadb-server
- sudo mysql_secure_installation
Из этого обучающего модуля вы узнаете, как установить MariaDB в Ubuntu 20.04 и подтвердить, что она запущена и имеет безопасную первоначальную конфигурацию.
Для выполнения этого обучающего модуля вам потребуется сервер под управлением Ubuntu 20.04. На сервере должен быть пользователь без привилегий root с правами администратора и брандмауэр, настроенный с помощью UFW. Вы можете выполнить настройку, следуя указаниям документа «Начальная настройка сервера для Ubuntu 20.04».
На момент подготовки этого обучающего модуля в репозиториях APT по умолчанию в Ubuntu 20.04 содержалась версия MariaDB 10.3.
Для ее установки обновите индекс пакетов на вашем сервере с помощью apt
:
- sudo apt update
Затем выполните установку пакета:
- sudo apt install mariadb-server
Эти команды выполнят установку MariaDB, но не будут запрашивать настройку пароля или внесение других изменений в конфигурацию. Поскольку при конфигурации по умолчанию установка MariaDB осуществляется небезопасным образом, мы будем использовать скрипт из пакета mariadb-server
для ограничения доступа к серверу и удаления неиспользуемых учетных записей.
Для новых установок MariaDB следующим шагом является запуск встроенного скрипта безопасности. Этот скрипт меняет ряд наименее защищенных опций, используемых по умолчанию, для таких функций, как, например, удаленный вход для пользователя root и тестовые пользователи.
Запустите скрипт безопасности:
- sudo mysql_secure_installation
При этом откроется серия диалогов, где вы можете внести некоторые изменения в параметры безопасности установки MariaDB. В первом диалоге вам нужно будет ввести пароль пользователя root для текущей базы данных. Поскольку мы еще не настроили его, нажмите ENTER
, чтобы указать «отсутствует».
OutputNOTE: 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.
При установке MariaDB 10.3 в системах Ubuntu для пользователя root в MariaDB настраивается аутентификация с помощью плагина unix_socket
, а не с помощью пароля. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить права администратора внешней программе (например, phpMyAdmin).
Поскольку для ротации журналов, запуска и остановки сервера используется учетная запись root, лучше всего не менять учетные данные root. Изменение учетных данных в файле конфигурации /etc/mysql/debian.cnf
может работать на начальном этапе, но при обновлении пакета изменения могут быть перезаписаны. Вместо изменения учетной записи root, мантейнеры пакетов рекомендуют создать отдельную административную учетную запись для доступа по паролю.
Для этого мы создадим новую учетную запись admin с теми же привилегиями, что и у учетной записи root, но настроенную для аутентификации с использованием пароля. Откройте в терминале командную строку MariaDB:
- sudo mariadb
Затем создайте нового пользователя с правами root и с аутентификацией на основе пароля. Измените имя пользователя и пароль на предпочитаемые:
- GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Очистите привилегии, чтобы они были сохранены и доступны в текущем сеансе:
- FLUSH PRIVILEGES;
После этого закройте оболочку MariaDB:
- exit
Теперь давайте проверим установку MariaDB.
При установке из репозиториев по умолчанию MariaDB будет запускаться автоматически. Чтобы проверить это, проверьте ее статус.
- 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, и вывести номер версии:
- sudo mysqladmin version
Результат должен выглядеть примерно так:
Outputmysqladmin 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
Если вы настроили отдельного пользователя для администрирования с аутентификацией по паролю, вы можете выполнить эту операцию, введя следующую команду:
- 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.
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