169 lines
13 KiB
Markdown
169 lines
13 KiB
Markdown
---
|
||
source: https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-20-04-ru
|
||
---
|
||
|
||
### Введение
|
||
|
||
[MariaDB](https://mariadb.org/) — это система управления реляционными базами данных с открытым исходным кодом, которая часто используется в качестве альтернативы MySQL в составе популярного набора [LAMP](https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-20-04) ( #Linux, #Apache, #MySQL, #PHP / #Python / #Perl). Она представляет собой упрощенную замену MySQL.
|
||
|
||
Краткая версия этого руководства по установке состоит из этих трех шагов:
|
||
|
||
- Обновление индекса пакетов с помощью `apt`.
|
||
- Установка пакета `mariadb-server` с помощью `apt`. Пакет также получает связанные инструменты для взаимодействия с #MariaDB.
|
||
- Запуск встроенного скрипта безопасности `mysql_secure_installation` для ограничения доступа к серверу.
|
||
|
||
```shell
|
||
sudo apt install mariadb-server
|
||
```
|
||
|
||
Из этого обучающего модуля вы узнаете, как установить MariaDB в Ubuntu 20.04 и подтвердить, что она запущена и имеет безопасную первоначальную конфигурацию.
|
||
|
||
## Предварительные требования
|
||
|
||
Для выполнения этого обучающего модуля вам потребуется сервер под управлением Ubuntu 20.04. На сервере должен быть пользователь без привилегий root с правами администратора и брандмауэр, настроенный с помощью UFW. Вы можете выполнить [настройку, следуя указаниям документа «Начальная настройка сервера для Ubuntu 20.04»](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04).
|
||
|
||
## Шаг 1 — Установка MariaDB
|
||
|
||
На момент подготовки этого обучающего модуля в репозиториях APT по умолчанию в Ubuntu 20.04 содержалась версия MariaDB 10.3.
|
||
|
||
Для ее установки обновите индекс пакетов на вашем сервере с помощью `apt`:
|
||
|
||
```shell
|
||
sudo apt update
|
||
```
|
||
|
||
Затем выполните установку пакета:
|
||
|
||
```shell
|
||
sudo apt install mariadb-server
|
||
```
|
||
|
||
Эти команды выполнят установку MariaDB, но не будут запрашивать настройку пароля или внесение других изменений в конфигурацию. Поскольку при конфигурации по умолчанию установка MariaDB осуществляется небезопасным образом, мы будем использовать скрипт из пакета `mariadb-server` для ограничения доступа к серверу и удаления неиспользуемых учетных записей.
|
||
|
||
## Шаг 2 — Настройка MariaDB
|
||
|
||
Для новых установок MariaDB следующим шагом является запуск встроенного скрипта безопасности. Этот скрипт меняет ряд наименее защищенных опций, используемых по умолчанию, для таких функций, как, например, удаленный вход для пользователя **root** и тестовые пользователи.
|
||
|
||
Запустите скрипт безопасности:
|
||
|
||
```shell
|
||
sudo mysql_secure_installation
|
||
```
|
||
|
||
При этом откроется серия диалогов, где вы можете внести некоторые изменения в параметры безопасности установки MariaDB. В первом диалоге вам нужно будет ввести пароль пользователя **root** для текущей базы данных. Поскольку мы еще не настроили его, нажмите `ENTER`, чтобы указать «отсутствует».
|
||
|
||
```
|
||
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`.
|
||
|
||
```
|
||
. . .
|
||
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:
|
||
|
||
```shell
|
||
sudo mariadb
|
||
```
|
||
|
||
Затем создайте нового пользователя с правами **root** и с аутентификацией на основе пароля. Измените имя пользователя и пароль на предпочитаемые:
|
||
|
||
Очистите привилегии, чтобы они были сохранены и доступны в текущем сеансе:
|
||
|
||
После этого закройте оболочку MariaDB:
|
||
|
||
```shell
|
||
exit
|
||
```
|
||
|
||
Теперь давайте проверим установку MariaDB.
|
||
|
||
## Шаг 4 — Тестирование MariaDB
|
||
|
||
При установке из репозиториев по умолчанию MariaDB будет запускаться автоматически. Чтобы проверить это, проверьте ее статус.
|
||
|
||
Вы получите вывод, который будет выглядеть примерно так:
|
||
|
||
```
|
||
● 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, и вывести номер версии:
|
||
|
||
```shell
|
||
sudo mysqladmin version
|
||
```
|
||
|
||
Результат должен выглядеть примерно так:
|
||
|
||
```
|
||
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
|
||
```
|
||
|
||
Если вы настроили отдельного пользователя для администрирования с аутентификацией по паролю, вы можете выполнить эту операцию, введя следующую команду:
|
||
|
||
```shell
|
||
mysqladmin -u admin -p version
|
||
```
|
||
|
||
Это означает, что MariaDB запущена и работает и что ваш пользователь сможет успешно пройти аутентификацию.
|
||
|
||
## Заключение
|
||
|
||
В этом обучающем модуле мы выполнили установку реляционной СУБД MariaDB и защитили ее с помощью скрипта `mysql_secure_installation`, входящего в комплект установки. Перед тестированием работы сервера MariaDB у вас была возможность создать нового административного пользователя с аутентификацией на основе пароля.
|
||
|
||
Теперь, когда у вас есть запущенный и защищенный сервер MariaDB, вы можете воспользоваться некоторыми примерами следующих шагов, которые вы можете выполнить при работе с сервером:
|
||
|
||
> [!seealso]
|
||
> https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-20-04-ru
|