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
|