Home » Установка MySQL на последний CentOS
Установка MySQL на последний CentOS

Установка MySQL на последний CentOS

Сегодня поговорим о том, как поставить MySQL на самый свежий CentOS — быстро, без боли и с пониманием, что вообще происходит под капотом. Если ты когда-нибудь сталкивался с задачей поднять базу на сервере, знаешь: хочется, чтобы всё работало сразу, без танцев с бубном, но при этом было понятно, что и зачем ты делаешь. Эта статья — не просто пошаговая инструкция, а разбор, как работает установка MySQL на CentOS, какие есть подводные камни, как не наступить на грабли и получить рабочую базу, которую не стыдно показать даже самому придирчивому DevOps-у. Погнали!

Как это работает? — Краткий ликбез о MySQL и CentOS

MySQL — это классика жанра, реляционная база данных, которая пережила десятки форков, сотни апдейтов и миллионы установок на серверах по всему миру. CentOS — это стабильная, enterprise-ориентированная ОС, которую любят за предсказуемость и долгий цикл поддержки. Но с выходом CentOS Stream и прекращением поддержки классического CentOS 8, всё стало чуть веселее: теперь у нас есть CentOS Stream (rolling release), AlmaLinux, Rocky Linux и прочие клоны. Но суть одна — установка MySQL на свежий CentOS (Stream 9, например) требует понимания, откуда брать пакеты, как не получить старую версию MariaDB вместо MySQL и как не словить конфликты зависимостей.

  • MySQL — база данных, которую используют для всего: от блогов до огромных e-commerce платформ.
  • CentOS — серверная ОС, максимально близкая к Red Hat Enterprise Linux (RHEL), но бесплатная.
  • В новых версиях CentOS по умолчанию ставится MariaDB, а не MySQL. Это важно!

Почему это важно? Потому что если ты просто напишешь yum install mysql-server, получишь MariaDB, а не MySQL. Для некоторых проектов это ок, но если тебе нужна именно оригинальная MySQL (например, для совместимости с каким-нибудь экзотическим софтом или для тестирования миграций), придётся немного заморочиться.

Как быстро и просто всё настроить? — Пошаговая инструкция

Давай разберёмся, как поставить MySQL на CentOS Stream 9 (или 8), чтобы всё работало из коробки. Я покажу рабочий способ через официальный репозиторий MySQL, чтобы получить актуальную версию (8.x на момент написания).

  1. Удаляем MariaDB (если вдруг она уже стоит):

    sudo systemctl stop mariadb
    sudo yum remove mariadb mariadb-server
  2. Добавляем официальный репозиторий MySQL:

    sudo yum install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm


    Для CentOS 8 используем mysql80-community-release-el8-1.noarch.rpm
  3. Обновляем кэш репозиториев:

    sudo yum repolist all
  4. Устанавливаем MySQL Server:

    sudo yum install mysql-community-server
  5. Запускаем и добавляем в автозагрузку:

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
  6. Проверяем статус:

    sudo systemctl status mysqld
  7. Находим временный пароль root:

    sudo grep 'temporary password' /var/log/mysqld.log
  8. Запускаем безопасную настройку:

    sudo mysql_secure_installation


    Тут можно задать новый пароль, отключить анонимных пользователей, запретить root-доступ удалённо и т.д.

Всё, теперь у тебя чистый, свежий MySQL 8 на CentOS. Можно подключаться через mysql -u root -p и творить добро.

Примеры, схемы, практические советы

Давай разберём пару кейсов из жизни, чтобы не было ощущения, что всё всегда идёт по плану.

Кейс Что пошло не так? Решение Рекомендация
Установил MySQL, но не могу подключиться по сети MySQL слушает только localhost по умолчанию Правим /etc/my.cnf:
bind-address = 0.0.0.0
Перезапускаем сервис
Ограничь доступ через firewall и пользователей!
После установки не запускается сервис Порт 3306 занят или SELinux блокирует Проверь netstat -tuln, getenforce, логи /var/log/mysqld.log Открой порт 3306 в firewall, настрой SELinux policy
Нужна другая версия MySQL (например, 5.7) По умолчанию ставится 8.x Отключи репозиторий 8.0:
sudo yum-config-manager --disable mysql80-community
Включи нужный:
sudo yum-config-manager --enable mysql57-community
Используй только официальные репозитории!

Практические советы:

  • Делай бэкапы до обновлений и миграций.
  • Используй mysql_secure_installation — это не формальность, а реально защищает от банальных взломов.
  • Для автоматизации используй Ansible, Chef, Puppet — установка MySQL там реализована как отдельные роли.
  • Для тестовых стендов можно использовать Vagrant + VirtualBox — быстро поднимаешь стенд, гоняешь миграции, сносишь.

Похожие решения, программы и утилиты

MySQL — не единственный игрок на поле. Вот краткое сравнение с другими популярными СУБД:

СУБД Плюсы Минусы Когда использовать
MySQL Скорость, простота, огромное комьюнити, поддержка большинства CMS Лицензия Oracle, не все фичи Enterprise бесплатны Веб-проекты, e-commerce, SaaS
MariaDB Форк MySQL, полностью open-source, совместимость Некоторые фичи расходятся с MySQL, не всегда 100% совместимость Когда нужен open-source и совместимость с MySQL
PostgreSQL Мощные фичи, расширяемость, строгая поддержка стандартов Сложнее в настройке, не всегда поддерживается “из коробки” в старых CMS Финтех, аналитика, сложные проекты
Percona Server Расширения для MySQL, улучшенная производительность Меньше документации, специфические фичи Когда нужна максимальная производительность и мониторинг

Если хочется автоматизировать установку — смотри в сторону Ansible (роль geerlingguy.mysql), Chef, Puppet. Для быстрой проверки миграций — Docker (docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=pass -d mysql:8).

Статистика, сравнение с другими решениями, интересные факты

  • MySQL — самая популярная СУБД в мире по данным DB-Engines (2024).
  • В CentOS 9 Stream MariaDB идёт по умолчанию, но MySQL можно поставить из официального репозитория Oracle.
  • MySQL 8.x поддерживает JSON, CTE, Window Functions — почти как PostgreSQL, но проще в освоении.
  • MySQL можно запускать в режиме “in-memory” для тестов и CI/CD.
  • Для мониторинга MySQL есть крутые open-source тулзы: Percona Monitoring and Management, Prometheus + Grafana.

Нестандартные способы использования и автоматизация

  • Можно поднять несколько инстансов MySQL на одном сервере — просто укажи разные datadir и port в my.cnf.
  • Для CI/CD удобно использовать mysqld --initialize-insecure --datadir=/tmp/mysqltest — быстро поднимаешь временную базу для тестов.
  • Скрипты для бэкапа и восстановления можно автоматизировать через cron + mysqldump или mysqlpump.
  • MySQL можно использовать как очередь задач (через таблицы), если не хочется тянуть RabbitMQ или Redis.

Какие новые возможности открываются и чем это поможет в автоматизации и скриптах?

С выходом MySQL 8.x появилось много фич, которые реально упрощают жизнь:

  • Поддержка roles — теперь можно гибко управлять правами пользователей.
  • JSON-операции — удобно хранить и обрабатывать semi-structured данные.
  • CTE и Window Functions — сложные запросы теперь пишутся проще и быстрее.
  • Параллельные DDL-операции — можно менять структуру таблиц без простоя.
  • Улучшенная репликация — для отказоустойчивости и масштабирования.

В автоматизации это значит, что можно:

  • Генерировать пользователей и роли скриптами (CREATE ROLE, GRANT).
  • Делать миграции без даунтайма.
  • Интегрировать MySQL в пайплайны CI/CD (например, через Docker или Ansible).
  • Строить сложные отчёты прямо в базе, не вытаскивая данные наружу.

Вывод — заключение и рекомендации

Установка MySQL на последний CentOS — задача несложная, если знаешь, где искать свежие пакеты и как не попасть в ловушку с MariaDB. Официальный репозиторий Oracle — твой друг, а mysql_secure_installation — must-have шаг после инсталляции. Не забывай про безопасность: firewall, SELinux, пароли, бэкапы. Для автоматизации — Ansible, Docker, скрипты на bash. Если нужен быстрый старт для проекта — VPS или выделенный сервер с CentOS и MySQL можно заказать здесь или тут (follow).

Используй MySQL, когда нужна скорость, простота и поддержка огромного количества приложений. Если хочется больше фич — смотри в сторону PostgreSQL или Percona. Для большинства задач MySQL 8.x — отличный выбор: современный, быстрый, с хорошей поддержкой и документацией (официальная документация). Не бойся автоматизировать и экспериментировать — серверная жизнь слишком коротка для ручных установок!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked