Быстрая установка MySQL в Ubuntu 20.04

MySQL – это открытая система управления базами данных, которая является частью стека LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Для управления данными реляционная система MySQL использует SQL (Structured Query Language).

Читайте также: Установка стека LAMP в Ubuntu 20.04

Данный мануал поможет установить версию MySQL 8 на сервер Ubuntu 20.04.

Примечание: Расширенную версию этого мануала вы найдете здесь.

Требования

Для работы вам понадобится сервер Ubuntu 20.04 с настроенным пользователем sudo и брандмауэром UFW. Все необходимые инструкции можно найти в мануале по начальной настройке сервера.

1: Установка MySQL

Прежде чем установить MySQL, обновите индекс локальных пакетов:

sudo apt update

Чтобы установить пакет mysql-server, введите:

sudo apt install mysql-server

2: Настройка MySQL

Первым делом на свежей установке СУБД следует запустить встроенный скрипт безопасности:

sudo mysql_secure_installation

После этого сценарий задаст вам ряд вопросов и на основе ваших ответов изменит конфигурацию СУБД. Сначала он предложит настроить Validate Password Plugin, который проверяет надежность вашего пароля.

Если вы решите настроить Validate Password Plugin, сценарий предложит выбрать уровень проверки пароля. Наивысший уровень можно включить, нажав 2.

Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
2

После настройки Validate Password Plugin сценарий предложит выбрать root-пароль MySQL. Введите надежный пароль и подтвердите его:

Please set the password for root here.
New password:
Re-enter new password:

После этого сценарий уточнит, хотите ли вы оставить этот пароль или выбрать новый. Чтобы продолжить работу, не меняя пароль, нажмите у:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

В остальных случаях вы можете просто нажать Y и Enter, чтобы принять опции по умолчанию.

3: Настройка аутентификации и привилегий (опционально)

Чтобы использовать пароль для аутентификации root пользователя MySQL, вам необходимо переключить метод аутентификации с auth_socket на другой плагин, например на caching_sha2_password или mysql_native_password. Для этого откройте командную строку MySQL:

sudo mysql

Чтобы настроить поддержку парольной аутентификации, запустите команду ALTER USER. Вместо password выберите надежный пароль. Имейте в виду: этот пароль заменит тот пароль, что вы выбрали в разделе 2.

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Примечание: Согласно официальной документации MySQL, для аутентификации MySQL рекомендуется использовать плагин caching_sha2_password, поскольку он обеспечивает более безопасное шифрование паролей, чем старый, но все еще широко используемый mysql_native_password.

Однако многие приложения PHP – например, phpMyAdmin – не очень хорошо поддерживают caching_sha2_password. Если вы планируете использовать эту базу данных с приложением PHP, рекомендуем настроить аутентификацию root с помощью плагина mysql_native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Затем запустите FLUSH PRIVILEGES, чтобы перезагрузить таблицы привилегий и применить новые настройки:

FLUSH PRIVILEGES;

Проверьте метод аутентификации пользователей, чтобы убедиться, что root больше не поддерживает плагин auth_socket:

SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+------------------------------------------------------------------------+-----------------------+-----------+

| user             | authentication_string                                                  | plugin                | host      |


+------------------+------------------------------------------------------------------------+-----------------------+-----------+


| debian-sys-maint | $A$005$lS|M#3K #XslZ.xXUq.crEqTjMvhgOIX7B/zki5DeLA3JB9nh0KwENtwQ4      | caching_sha2_password | localhost |


| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |


| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |


| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |


| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F                              | caching_sha2_password | localhost |


+------------------+------------------------------------------------------------------------+-----------------------+-----------+

5 rows in set (0.00 sec)

После этой проверки вы можете выйти из оболочки MySQL:

exit

В некоторых ситуациях для подключения к MySQL лучше подходит специальный выделенный пользователь. Этот вариант можно использовать в качестве альтернативы пользователю root. Чтобы создать нового пользователя, снова откройте оболочку MySQL:

sudo mysql

Примечание: Если у вас включена парольная аутентификация для пользователя root, как описано выше, для доступа к оболочке MySQL вы должны использовать такую команду:

mysql -u root -p

Создайте нового пользователя и выберите для него надежный пароль:

CREATE USER '8host'@'localhost' IDENTIFIED BY 'password';

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

GRANT ALL PRIVILEGES ON *.* TO '8host'@'localhost' WITH GRANT OPTION;

После этого выйдите из оболочки MySQL:

exit

Заключение

Теперь вы умеете выполнять базовую установку и настройку MySQL.

Читайте также:

Много полезной информации о MySQL вы найдете в официальной документации СУБД.

Tags: , ,

Добавить комментарий