1. Подготовка окружения CentOS 8 и управление репозиториями AppStream
Подготовка окружения CentOS 8 и управление репозиториями AppStream
Добро пожаловать в курс MySQL на CentOS 8: Установка и настройка. Это первая статья нашего цикла, в которой мы заложим фундамент для успешной работы с базой данных. Прежде чем вводить команду установки MySQL, необходимо правильно подготовить операционную систему и разобраться с особенностями управления пакетами в CentOS 8 (и его производных, таких как AlmaLinux или Rocky Linux).
Многие новички совершают ошибку, сразу пытаясь установить пакеты, не обновив систему или не проверив конфликты версий. Это может привести к нестабильной работе или сложностям при обновлении в будущем. Сегодня мы научимся делать всё правильно.
Введение в экосистему CentOS 8
CentOS 8 привнесла значительные изменения в то, как управляется программное обеспечение в мире RHEL-подобных систем. Главным нововведением стало разделение репозиториев и появление технологии AppStream.
Раньше, во времена CentOS 7, всё было проще, но менее гибко: была одна версия пакета в репозитории. Если вам нужна была более новая версия PHP или MySQL, приходилось подключать сторонние репозитории, что часто ломало зависимости. В 8-й версии эта проблема решена архитектурно.
Структура репозиториев
В CentOS 8 контент разделен на два основных репозитория:
!Схема разделения BaseOS и AppStream с демонстрацией потоков версий.
Пакетный менеджер DNF
На смену старому доброму yum пришел DNF (Dandified YUM). Хотя yum всё ещё доступен как символическая ссылка, под капотом работает именно dnf. Он быстрее, лучше разрешает зависимости и умеет работать с модулями.
Первое, что мы должны сделать на чистом сервере — обновить список пакетов и саму систему.
Подключитесь к вашему серверу по SSH и выполните:
Эта команда обновит все установленные пакеты до последних версий в рамках текущего релиза.
Работа с AppStream и модулями
Самая важная концепция, которую нужно понять перед установкой MySQL — это Модули (Modules) и Потоки (Streams).
В репозитории AppStream одно и то же приложение может быть представлено в нескольких версиях одновременно. Каждая версия находится в своем потоке.
Проверка доступных модулей
Давайте посмотрим, какие версии MySQL доступны в стандартном репозитории AppStream. Для этого используем команду:
Вывод будет выглядеть примерно так:
Здесь мы видим:
* Name: Имя пакета (mysql).
Stream: Версия потока (например, 8.0). Метка [d] означает default* (по умолчанию).
* Profiles: Профили установки (клиент или сервер).
Почему это важно для нашего курса?
В этом курсе мы будем рассматривать установку MySQL не только из стандартного репозитория AppStream, но и из официального репозитория разработчиков (Oracle). Часто официальный репозиторий содержит более свежие минорные версии и исправления, чем стандартный репозиторий CentOS.
Если вы планируете использовать официальный репозиторий MySQL Community, вам необходимо отключить стандартный модуль MySQL в AppStream, чтобы избежать конфликтов. DNF должен знать, что мы не хотим использовать встроенную версию.
Управление модулями
Вот основные команды для работы с модулями, которые вам пригодятся:
> Важное правило: Никогда не смешивайте установку пакетов из разных репозиториев без явного управления приоритетами или модулями. Это прямой путь к «dependency hell» (аду зависимостей).
Установка необходимых утилит
Для комфортной работы нам понадобится набор базовых инструментов. Часто в минимальных образах CentOS (Minimal Install) отсутствуют даже простые текстовые редакторы или утилиты для скачивания файлов.
Установим их:
Разберем, зачем они нужны:
* nano: Простой консольный текстовый редактор. Если вы умеете пользоваться vim, можете использовать его, но для новичков nano проще.
* wget / curl: Утилиты для скачивания файлов (понадобятся для загрузки RPM-пакетов репозитория).
* net-tools: Содержит утилиту netstat (или ifconfig), которая поможет нам проверять, на каком порту запустился MySQL.
* policycoreutils-python-utils: Инструменты для управления SELinux (понадобятся, если мы решим перенести файлы данных MySQL в нестандартное место).
Подготовка Firewall (Брандмауэра)
По умолчанию в CentOS 8 используется firewalld. Если вы планируете подключаться к базе данных удаленно (не с самого сервера), вам нужно будет открыть порт.
Проверим статус брандмауэра:
Если он активен (Active: active (running)), то все входящие соединения, кроме SSH, скорее всего заблокированы. Мы пока не будем открывать порт 3306 (стандартный для MySQL), так как сервис еще не установлен, но запомните команду, которая нам понадобится в будущем:
Проверка SELinux
Security-Enhanced Linux (SELinux) — это система принудительного контроля доступа. В CentOS 8 она включена по умолчанию в режиме Enforcing.
Многие руководства в интернете советуют сразу отключать SELinux. Мы настоятельно не рекомендуем этого делать. Отключение систем безопасности — плохая привычка. MySQL отлично работает с включенным SELinux, если использовать стандартные пути (/var/lib/mysql).
Проверим текущий статус:
Вы должны увидеть:
Current mode: enforcing
Если вы видите permissive или disabled, это значит, что защита ослаблена или выключена.
Заключение
Мы подготовили наш сервер к установке базы данных. Теперь у нас есть:
В следующей статье мы перейдем непосредственно к добавлению репозитория и установке MySQL сервера.
> Документация по DNF и AppStream доступна на официальном сайте: CentOS Docs