Tutorial

Установка MySQL в Ubuntu 20.04 [Краткое руководство]

Published on May 13, 2020

Manager, Developer Education

Русский
Установка MySQL в Ubuntu 20.04 [Краткое руководство]

Введение

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

В этом кратком руководстве мы рассмотрим, как установить 8-ю версию MySQL на сервер Ubuntu 20.04.

Предварительные требования

Для данного обучающего руководства вам потребуется следующее:

Шаг 1 — Установка MySQL

Для установки MySQL нужно предварительно обновить индекс пакетов вашего сервера, если вы еще не сделали этого:

  1. sudo apt update

Затем выполните установку пакета mysql-server:

  1. sudo apt install mysql-server

Шаг 2 — Настройка MySQL

Запустите входящий в комплект скрипт MySQL с привилегиями sudo:

  1. sudo mysql_secure_installation

При этом откроется серия диалогов, где вы сможете внести некоторые изменения в параметры безопасности установки MySQL. В первом запросе вам предложат определить, хотите ли вы настроить плагин валидации пароля, который вы можете использовать для проверки надежности вашего пароля MySQL.

Если вы решите настроить плагин проверки пароля, скрипт предложит вам выбрать уровень проверки пароля, самый слабый уровень 0, самый сильный уровень 2:

Output
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

В следующем диалоге нужно будет ввести и подтвердить пароль пользователя root в MySQL:

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

Затем скрипт спросит, хотите ли вы продолжить использовать пароль, который вы только что ввели, или хотите ввести новый пароль. Если вы удовлетворены вашим паролем, введите Y для продолжения выполнения скрипта:

Output
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 — Настройка аутентификации и прав пользователя (опционально)

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

  1. sudo mysql

Теперь запустите команду ALTER USER для изменения используемого плагина аутентификации и установки нового пароля. Не забудьте изменить password​​​ на более надежный пароль и убедитесь, что эта команда заменит пароль root, заданный на шаге 2:

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

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

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

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

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

  1. FLUSH PRIVILEGES;

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

  1. SELECT user,authentication_string,plugin,host FROM mysql.user;
Output
+------------------+------------------------------------------------------------------------+-----------------------+-----------+ | 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:

  1. exit

Также вы можете подключиться к MySQL как отдельный пользователь вместо root. Для создания такого пользователя откройте оболочку MySQL еще раз:

  1. sudo mysql

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

  1. mysql -u root -p

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

  1. CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

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

  1. GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

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

  1. exit

Заключение

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

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Default avatar

Manager, Developer Education

Technical Writer @ DigitalOcean

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.