Как установить MySQL на CentOS 7

Введение

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

В CentOS 7 предпочтение отдается MariaDB – форку MySQL, управляемому исходными разработчиками MySQL и разработанному как замена MySQL. Если вы запускаете yum install mysql в CentOS 7, устанавливается именно MariaDB, а не MySQL. Если у вас возник вопрос о выборе между MySQL и MariaDB, MariaDB в целом будет работать без проблем вместо MySQL, так что если у вас нет конкретной задачи для MySQL, обратитесь к руководству Как установить MariaDB на Centos 7.

В этом руководстве будет объяснено, как установить MySQL версии 8 на сервере с CentOS 7.

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

Для выполнения этого руководства вам понадобится:

  • A CentOS 7 with a non-root user with sudo privileges. You can learn more about how to set up a user with these privileges in the Initial Server Setup with CentOS 7 guide.

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

Как упоминалось во введении, команда Yum для установки MySQL фактически устанавливает MariaDB. Чтобы установить MySQL, нам нужно посетить репозиторий Yum сообщества MySQL, который предоставляет пакеты для MySQL.

В веб-браузере перейдите по адресу:

https://dev.mysql.com/downloads/repo/yum/

Обратите внимание, что видные ссылки для загрузки не ведут прямо к файлам. Вместо этого они ведут на следующую страницу, где вас приглашают войти или зарегистрироваться. Если вы не хотите создавать учетную запись, вы можете найти текст “No thanks, just start my download”, затем щелкнуть правой кнопкой мыши и скопировать ссылку, или вы можете изменить номер версии в командах ниже.

Найдите нужную версию и обновите ссылку, если это необходимо:

  1. curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

Как только файл rpm сохранен, мы проверим целостность загрузки, запустив md5sum и сравнив его с соответствующим значением MD5, указанным на сайте:

  1. md5sum mysql80-community-release-el7-5.noarch.rpm
Output
e2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm

Сравните этот вывод с соответствующим значением MD5 на сайте:

Теперь, когда мы убедились, что файл не был поврежден или изменен, мы установим пакет:

  1. sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm

Это добавляет два новых репозитория yum MySQL, и теперь мы можем использовать их для установки сервера MySQL:

  1. sudo yum install mysql-server

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

Шаг 2 — Запуск MySQL

Мы запустим демон с помощью следующей команды:

  1. sudo systemctl start mysqld

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

  1. sudo systemctl status mysqld

Если MySQL успешно запущен, вывод должен содержать Active: active (running), и последняя строка должна выглядеть примерно так:

  1. Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]: Started MySQL Server.

Примечание: MySQL автоматически включается для запуска при загрузке, когда он установлен. Вы можете изменить это поведение по умолчанию с помощью sudo systemctl disable mysqld

Во время процесса установки генерируется временный пароль для пользователя root MySQL. Найдите его в mysqld.log с помощью этой команды:

  1. sudo grep 'temporary password' /var/log/mysqld.log
Output
2022-01-24T19:54:46.313728Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mqRfBU_3Xk>r

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

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

MySQL включает скрипт безопасности, чтобы изменить некоторые из менее безопасных параметров по умолчанию, такие как удаленный вход в систему для root и примеры пользователей.

Используйте эту команду для запуска скрипта безопасности.

  1. sudo mysql_secure_installation

Вас попросят ввести пароль root по умолчанию. Как только вы его введете, вам потребуется его изменить.

Output
The existing password for the user account root has expired. Please set a new password. New password:

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

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

Output
Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) :

После того, как мы отклоним предложение изменить пароль снова, мы нажмем Y, а затем ENTER на все последующие вопросы, чтобы удалить анонимных пользователей, запретить удаленный вход root, удалить тестовую базу данных и доступ к ней, и перезагрузить таблицы привилегий.

Теперь, когда мы защитили установку, давайте ее протестируем.

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

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

  1. mysqladmin -u root -p version

Вы должны увидеть вывод, аналогичный этому:

Output
mysqladmin  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.

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.28
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			3 min 2 sec

Threads: 2  Questions: 14  Slow queries: 0  Opens: 133  Flush tables: 3  Open tables: 49  Queries per second avg: 0.076

Это указывает на успешную установку.

Заключение

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

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-centos-7