Введение
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”, затем щелкнуть правой кнопкой мыши и скопировать ссылку, или вы можете изменить номер версии в командах ниже.
Найдите нужную версию и обновите ссылку, если это необходимо:
Как только файл rpm сохранен, мы проверим целостность загрузки, запустив md5sum
и сравнив его с соответствующим значением MD5, указанным на сайте:
Outpute2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm
Сравните этот вывод с соответствующим значением MD5 на сайте:
Теперь, когда мы убедились, что файл не был поврежден или изменен, мы установим пакет:
Это добавляет два новых репозитория yum MySQL, и теперь мы можем использовать их для установки сервера MySQL:
Нажмите y
, чтобы подтвердить, что вы хотите продолжить. Поскольку мы только что добавили пакет, нам также будет предложено принять его ключ GPG. Нажмите y
, чтобы загрузить его и завершить установку.
Шаг 2 — Запуск MySQL
Мы запустим демон с помощью следующей команды:
systemctl
не отображает результат всех команд управления службами, поэтому, чтобы убедиться, что мы добились успеха, мы будем использовать следующую команду:
Если MySQL успешно запущен, вывод должен содержать Active: active (running)
, и последняя строка должна выглядеть примерно так:
Примечание: MySQL автоматически включается для запуска при загрузке, когда он установлен. Вы можете изменить это поведение по умолчанию с помощью sudo systemctl disable mysqld
Во время процесса установки генерируется временный пароль для пользователя root MySQL. Найдите его в mysqld.log
с помощью этой команды:
Output2022-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 и примеры пользователей.
Используйте эту команду для запуска скрипта безопасности.
Вас попросят ввести пароль root по умолчанию. Как только вы его введете, вам потребуется его изменить.
OutputThe existing password for the user account root has expired. Please set a new password.
New password:
Введите новый пароль из 12 символов, содержащий как минимум одну прописную букву, одну строчную букву, одну цифру и один специальный символ. Повторите ввод, когда будете подсказаны.
Вы получите обратную связь о силе вашего нового пароля, а затем вам сразу же будет предложено изменить его снова. Поскольку вы только что это сделали, вы можете уверенно сказать Нет
:
OutputEstimated 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
) и верните версию.
Вы должны увидеть вывод, аналогичный этому:
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