MySQL — это система управления базами данных с открытым исходным кодом, которая, как правило, устанавливается в составе популярного стека LEMP (Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl). Она использует реляционную модель и язык структурированных запросов (SQL) для управления данными и запросов данных.
Из этого обучающего руководства вы узнаете, как установить MySQL версии 8 на сервер под управлением CentOS 8.
Для выполнения этого обучающего руководства вам потребуется сервер на базе CentOS 8. Этот сервер должен иметь пользователя без прав root с административными правами, а также брандмауэр, настроенный с помощью firewalld
. Чтобы выполнить настройку сервера, воспользуйтесь руководством по начальной настройке сервера CentOS 8.
В CentOS 8 версия MySQL 8 доступна в репозиториях по умолчанию.
Запустите следующую команду для установки пакета mysql-server
и ряда его зависимостей:
- 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
:
- sudo systemctl start mysqld.service
Чтобы проверить, что служба работает корректно, запустите следующую команду. Обратите внимание, что для многих команд systemctl
, включая start
и, как показано здесь, status
, вы не должны использовать .service
после имени службы:
- 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 при загрузке сервера с помощью следующей команды:
- sudo systemctl enable mysqld
Примечание. Если вы когда-нибудь захотите изменить это поведение и отключить запуск MySQL при загрузке, вы можете сделать это, запустив следующую команду:
- sudo systemctl disable mysqld
Теперь MySQL установлена на вашем сервере, запущена и активирована. Ниже мы рассмотрим то, как можно повысить безопасность вашей базы данных, используя скрипт оболочки, который устанавливается вместе с вашим экземпляром MySQL.
MySQL содержит скрипт безопасности, позволяющий изменять некоторые параметры конфигурации, используемые по умолчанию, для повышения безопасности MySQL.
Чтобы использовать скрипт безопасности, запустите следующую команду:
- sudo mysql_secure_installation
В результате вы получите серию запросов о том, хотите ли вы внести определенные изменения в параметры безопасности установки MySQL. Первый запрос поинтересуется, хотите ли вы настроить плагин валидации пароля, который вы можете использовать для проверки надежности вашего пароля MySQL.
Если вы решите использовать плагин валидации пароля, скрипт предложит вам выбрать уровень валидации пароля. Самый высокий уровень, который можно установить, указав 2
, требует, чтобы ваш пароль был длиной не менее восьми символов и содержал строчные, заглавные буквы, цифры и специальные символы.
OutputSecuring 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. Введите и подтвердите безопасный пароль по вашему выбору:
OutputPlease set the password for root here.
New password:
Re-enter new password:
Если вы использовали плагин валидации пароля, то получите информацию о надежности вашего нового пароля. Затем скрипт спросит, хотите ли вы продолжить использовать пароль, который вы только что ввели, или хотите ввести новый пароль. Если вы удовлетворены надежностью пароля, который вы только что ввели, введите Y
для продолжения:
OutputEstimated 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 можно считать выполненными. В качестве заключительного шага мы проверим доступность и корректность работы базы данных.
Вы можете проверить вашу установку и получить информацию о ней, выполнив подключение с помощью инструмента mysqladmin
, который позволяет запускать административные команды. Используйте следующую команду для подключения к MySQL в качестве пользователя root (-u root
), запроса пароля (-p
) и возврата версии установки:
- mysqladmin -u root -p version
Вы увидите примерно следующий вывод:
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 и начать добавлять в базу данные, запустите следующую команду:
- 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.
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!