tech-tips/Программное обеспечение/СУБД/MySQL - MariaDB/Установка MariaDB в Ubuntu 20.04 DigitalOcean.md

169 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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