Введение
MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом.
Последняя версия сервера базы данных MySQL, версия 8.0, доступна для установки из стандартных репозиториев CentOS 8.
MySQL 8.0 представил много новых функций и изменений, которые сделали некоторые приложения несовместимыми с этой версией. Прежде чем выбрать версию MySQL для установки, ознакомьтесь с документацией приложения, которое вы собираетесь распространять на сервере CentOS.
CentOS 8 также предоставляет MariaDB 10.3, которая является «заменой» MySQL 5.7 с некоторыми ограничениями. Если приложение несовместимо с MySQL 8.0, установите MariaDB 10.3.
В этом руководстве мы покажем вам, как установить и защитить MySQL 8.0 в системах CentOS 8.
Если вы хотите установить MySQL на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Установите MySQL 8.0 на CentOS 8
Установите сервер MySQL 8.0 с помощью диспетчера пакетов CentOS от имени пользователя root или пользователя с привилегиями sudo:
sudo dnf install @mysql
Модуль @mysql
устанавливает MySQL и все зависимости.
После завершения установки запустите службу MySQL и включите ее автоматический запуск при запуске, выполнив следующую команду:
sudo systemctl enable --now mysqld
Чтобы проверить, работает ли сервер MySQL, введите:
sudo systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-01-18 15:21:52 CET; 10min ago
Process: 4498 ExecStopPost=/usr/libexec/mysql-wait-stop (code=exited, status=0/SUCCESS)
Process: 4633 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
Process: 4550 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS)
Process: 4526 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
Main PID: 4587 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 12251)
Memory: 385.4M
CGroup: /system.slice/mysqld.service
└─4587 /usr/libexec/mysqld --basedir=/usr
Защита MySQL
Запустите сценарий mysql_secure_installation
, который выполняет различные операции, связанные с безопасностью, и устанавливает пароль root для MySQL:
sudo mysql_secure_installation
Вам будет предложено настроить VALIDATE PASSWORD PLUGIN
, который используется для проверки надежности паролей пользователей MySQL и повышения безопасности. Существует три уровня критериев проверки пароля: низкий, средний и сильный. Нажмите ENTER
, если вы не хотите настраивать подключаемый модуль проверки пароля.
В следующем запросе вам будет предложено установить пароль для пользователя root MySQL. Как только это будет сделано, сценарий также попросит вас удалить анонимного пользователя, ограничить доступ пользователя root к локальному компьютеру и удалить тестовую базу данных. Вы должны ответить «Y» (да) на все вопросы.
Для взаимодействия с сервером MySQL из командной строки используйте клиентскую утилиту MySQL, устанавливаемую как зависимость. Проверьте доступ root, набрав:
mysql -u root -p
При появлении запроса введите пароль root, и вы увидите оболочку MySQL, как показано ниже:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.17 Source distribution
Это все! Вы установили и защитили MySQL 8.0 на своем сервере CentOS и готовы его использовать.
Метод аутентификации
Сервер MySQL 8.0, включенный в репозитории CentOS 8, настроен на использование старого подключаемого модуля аутентификации mysql_native_password
, поскольку некоторые клиентские инструменты и библиотеки в CentOS 8 несовместимы с методом caching_sha2_password
, который установлен по умолчанию в исходной версии MySQL 8.0.
метод mysql_native_password
для большинства конфигураций. Однако, если вы хотите изменить плагин аутентификации по умолчанию на caching_sha2_password
, который работает быстрее и обеспечивает лучшую безопасность, откройте следующий файл конфигурации:
sudo vim /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
Измените значение default_authentication_plugin
на caching_sha2_password
:
[mysqld]
default_authentication_plugin=caching_sha2_password
Закройте и сохраните файл и перезапустите сервер MySQL, чтобы изменения вступили в силу:
sudo systemctl restart mysqld
Вывод
CentOS 8 распространяется с MySQL 8.0. Мы увидели, как установить MySQL на CentOS 8 Linux.
Теперь, когда ваш сервер MySQL настроен и работает, вы можете подключиться к оболочке MySQL и начать создавать новые базы данных и пользователей.