MySQL 8.0 является частью RedHat Enterprise 8 и других дистрибутивов на его основе, таких как CentOS и Oracle Linux. Однако если по какой-то причине вы захотите использовать последнюю версию MySQL из репозитория сообщества, вы можете столкнуться с некоторым разочарованием, если не знакомы с новым способом работы менеджера пакетов.
Давайте начнем с проверки нашей системы:
1 | lsb_release -a |
Мы видим, что мы находимся на CentOS Stream release 8. Теперь давайте попробуем установить MySQL Server:
1 | dnf install mysql-server |
Обратите внимание, что в RedHat и CentOS репозиторий называется AppStream
Мы видим, что менеджер пакетов хочет установить по умолчанию MySQL 8.0.26! Довольно "свежая" версия
Мы также видим, что есть поток модулей под названием mysql, который используется. Давайте посмотрим на него:
1 | dnf module list mysql |
Модуль действительно включен и установлен по умолчанию.
Теперь мы установим наш Community Repository с сайта https://dev.mysql.com/downloads/repo/yum/:
1 | rpm -ivh https://dev.mysql.com/get/mysql84-community-release-el8-1.noarch.rpm |
1 | rpm -ivh https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm |
Но если мы пытаемся установить MySQL Community Server, всегда выбирается системный из AppStream. Независимо от используемого имени пакета: mysql-server или mysql-community-server.
Нам нужно отключить модуль mysql из менеджера пакетов:
1 | dnf module disable mysql |
И теперь можно установить последнюю версию MySQL (8.0.32 на данный момент):
1 | dnf install mysql-server |
Обратите внимание, что теперь вы также можете использовать mysql-community-server в качестве имени пакета.
Теперь вы также знаете, как включить репозиторий MySQL, если вы хотите его использовать.
Запускаем службу и добавляем ее в автоматический запуск
1 | systemctl enable mysqld --now |
Во время установки устанавливается временный пароль для учетной записи root. Вы можете получить пароль из файла журнала, выполнив следующую команду:
1 | grep 'A temporary password is generated' /var/log/mysqld.log | tail -1 |