Tutorial

Установка MySQL в CentOS 8

Published on April 13, 2020
Default avatar

By Mark Drake

Manager, Developer Education

Русский
Установка MySQL в CentOS 8

Введение

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

Из этого обучающего руководства вы узнаете, как установить MySQL версии 8 на сервер под управлением CentOS 8.

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

Для выполнения этого обучающего руководства вам потребуется сервер на базе CentOS 8. Этот сервер должен иметь пользователя без прав root с административными правами, а также брандмауэр, настроенный с помощью firewalld. Чтобы выполнить настройку сервера, воспользуйтесь руководством по начальной настройке сервера CentOS 8.

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

В CentOS 8 версия MySQL 8 доступна в репозиториях по умолчанию.

Запустите следующую команду для установки пакета mysql-server и ряда его зависимостей:

  1. sudo dnf install mysql-server

При появлении запроса нажмите y, а затем ENTER, чтобы подтвердить, что вы хотите продолжить:

Output
. . . Install 49 Packages Total download size: 46 M Installed size: 252 M Is this ok [y/N]: y

После этого MySQL будет установлена на ваш сервер, но использовать ее пока нельзя. Пакет, который вы только что установили, настраивает запуск MySQL в качестве службы systemd с именем mysqld.service. Чтобы использовать MySQL, вам потребуется запустить ее с помощью команды systemctl:

  1. sudo systemctl start mysqld.service

Чтобы проверить, что служба работает корректно, запустите следующую команду. Обратите внимание, что для многих команд systemctl, включая start и, как показано здесь, status, вы не должны использовать .service после имени службы:

  1. sudo systemctl status mysqld

Если MySQL была запущена успешно, вывод покажет, что служба MySQL активна:

Output
● mysqld.service - MySQL 8.0 database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago Main PID: 15723 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 5056) Memory: 474.2M CGroup: /system.slice/mysqld.service └─15723 /usr/libexec/mysqld --basedir=/usr Mar 12 14:07:32 cent-mysql-3 systemd[1]: Starting MySQL 8.0 database server... Mar 12 14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]: Initializing MySQL database Mar 12 14:07:41 cent-mysql-3 systemd[1]: Started MySQL 8.0 database server.

Затем настройте запуск MySQL при загрузке сервера с помощью следующей команды:

  1. sudo systemctl enable mysqld

Примечание. Если вы когда-нибудь захотите изменить это поведение и отключить запуск MySQL при загрузке, вы можете сделать это, запустив следующую команду:

  1. sudo systemctl disable mysqld

Теперь MySQL установлена на вашем сервере, запущена и активирована. Ниже мы рассмотрим то, как можно повысить безопасность вашей базы данных, используя скрипт оболочки, который устанавливается вместе с вашим экземпляром MySQL.

Шаг 2 — Защита MySQL

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

Чтобы использовать скрипт безопасности, запустите следующую команду:

  1. sudo mysql_secure_installation

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

Если вы решите использовать плагин валидации пароля, скрипт предложит вам выбрать уровень валидации пароля. Самый высокий уровень, который можно установить, указав 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, чтобы принять ответы по умолчанию для всех последующих вопросов. Выбрав эти ответы, вы удалите ряд анонимных пользователей и тестовую базу данных, отключите возможность удаленного входа пользователя root и загрузите новые правила, чтобы внесенные изменения немедленно активировались в MySQL.

После этого установку и обеспечение защиты MySQL на ваш сервер с CentOS 8 можно считать выполненными. В качестве заключительного шага мы проверим доступность и корректность работы базы данных.

Шаг 3 — Тестирование MySQL

Вы можете проверить вашу установку и получить информацию о ней, выполнив подключение с помощью инструмента mysqladmin, который позволяет запускать административные команды. Используйте следующую команду для подключения к MySQL в качестве пользователя root (-u root), запроса пароля (-p) и возврата версии установки:

  1. mysqladmin -u root -p version

Вы увидите примерно следующий вывод:

Output
mysqladmin  Ver 8.0.17 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.17
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			2 hours 52 min 37 sec

Threads: 2  Questions: 20  Slow queries: 0  Opens: 131  Flush tables: 3  Open tables: 48  Queries per second avg: 0.001

Это указывает, что ваша установка выполнена успешно.

Если вы хотите подключиться к MySQL и начать добавлять в базу данные, запустите следующую команду:

  1. mysql -u root -p

Как и в случае с предыдущей командой mysqladmin, эта команда содержит опцию -u, которая позволяет указать пользователя, которого вы хотите использовать (в данном случае root), а также опцию -p, которая указывает команде запрашивать пароль пользователя, заданный на предыдущем шаге.

После ввода пароля вашего пользователя root MySQL вы увидите запрос MySQL:

Теперь вы можете начать использовать вашу установку MySQL для создания и загрузки баз данных и отправки запросов.

Заключение

Следуя указаниям данного обучающего руководства, вы установили и обеспечили защиту MySQL на сервере с CentOS 8. После этого вы можете установить Nginx и PHP для получения полного рабочего стека LEMP на вашем сервере.

Чтобы узнать больше об использовании MySQL, мы рекомендуем ознакомиться с официальной документацией.

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

Learn more about us


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!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

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

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel