Гид по технологиям

2. Настройка слейва

• 4 min read • Базы данных • Обновлено 25 Nov 2025
Настройка MySQL-реплики: шаги для слейва
Настройка MySQL-реплики: шаги для слейва

Что делает эта инструкция

Краткая пошаговая инструкция по настройке MySQL-реплики (slave) для базы exampledb. Определяет варианты: импорт дампа SQL или получение данных через LOAD DATA FROM MASTER, настройку конфигурации и команд MySQL для запуска репликации.


1. Создаём базу данных на слейве

Сначала на слейве создайте пустую базу exampledb:

mysql -u root -p
Enter password:
CREATE DATABASE exampledb;
quit;

Важно: эти команды выполняются в клиенте mysql. Если вы будете импортировать дамп — база должна существовать заранее.


2. Импорт дампа с мастера (вариант A)

Если на мастере вы сделали SQL-дамп и скопировали файл на слейв, импортируйте его в только что созданную exampledb:

mysql -u root -p exampledb < /path/to/exampledb.sql

Замените реальным паролем пользователя root. ВАЖНО: между -p и паролем нет пробела!

Если вы планируете использовать LOAD DATA FROM MASTER вместо предварительного импорта, этот шаг можно пропустить.


3. Настройка конфигурации MySQL на слейве

Укажите слейву, где находится мастер и какую базу реплицировать. Добавьте в /etc/mysql/my.cnf следующие строки (или поправьте существующие):

server-id=2
master-host=192.168.0.100
master-user=slave_user
master-password=secret
master-connect-retry=60
replicate-do-db=exampledb

Пояснения:

  • server-id должен быть уникальным в кластере репликации.
  • master-host — IP или имя хоста мастера.
  • master-user — пользователь, которому на мастере даны права REPLICATION SLAVE.
  • replicate-do-db ограничивает репликацию указанной базой.

После правки перезапустите MySQL:

/etc/init.d/mysql restart

4. Получение данных через LOAD DATA FROM MASTER (вариант B)

Если вы не импортировали дамп и хотите подтянуть данные прямо с мастера:

mysql -u root -p
Enter password:
LOAD DATA FROM MASTER;
quit;

После выполнения команды проверьте, появились ли таблицы и данные. Если установлен phpMyAdmin на слейве — можно убедиться визуально.


5. Остановка слейва и привязка к мастеру

Остановите слейв перед настройкой параметров мастера:

mysql -u root -p
Enter password:
SLAVE STOP;

Затем внутри MySQL замените значения на свои и выполните:

CHANGE MASTER TO MASTER_HOST='192.168.0.100', MASTER_USER='slave_user', MASTER_PASSWORD='**', MASTER_LOG_FILE='mysql-bin.006', MASTER_LOG_POS=183;

Кратко о параметрах:

  • MASTER_HOST — адрес мастера.
  • MASTER_USER — репликационный пользователь, созданный на мастере.
  • MASTER_PASSWORD — пароль этого пользователя.
  • MASTER_LOG_FILE и MASTER_LOG_POS — имя бинлог-файла и позиция, которые вы получили на мастере через SHOW MASTER STATUS;.

Теперь запустите слейв:

START SLAVE;
quit;

6. Проверка статуса и базовые шаги отладки

Проверьте статус репликации внутри mysql:

SHOW SLAVE STATUS\G

Обратите внимание на поля Slave_IO_Running и Slave_SQL_Running — оба должны быть Yes. Если нет, смотрите поля Last_IO_Error и Last_SQL_Error для причины.

Типичные причины проблем:

  • Ошибка авторизации (неверный MASTER_USER/MASTER_PASSWORD).
  • Несовпадающая структура таблиц (при импорте дампа пропущены таблицы).
  • Неверные MASTER_LOG_FILE или MASTER_LOG_POS.
  • Права репликационного пользователя на мастере отсутствуют.

Полезные команды для диагностики:

SHOW MASTER STATUS;  -- на мастере
SHOW SLAVE STATUS\G; -- на слейве
SHOW PROCESSLIST;    -- поиск зависших потоков
tail -f /var/log/mysql/error.log  -- проверка логов сервера

Роли и чеклист: кто что делает

  • Системный администратор:
    • Создаёт пользователя slave_user на мастере с правами REPLICATION SLAVE.
    • Открывает сетевой доступ между мастер и слейв (порт 3306).
  • DBA:
    • Проверяет структуру и делает дамп базы.
    • Определяет правильный MASTER_LOG_FILE и MASTER_LOG_POS (SHOW MASTER STATUS).
  • Оператор на слейве:
    • Создаёт базу, импортирует дамп или выполняет LOAD DATA FROM MASTER.
    • Настраивает /etc/mysql/my.cnf и перезапускает сервис.
    • Выполняет CHANGE MASTER TO и START SLAVE, проверяет SHOW SLAVE STATUS.

Критерии приёмки

  • SLAVE_IO_Running = Yes и SLAVE_SQL_Running = Yes в SHOW SLAVE STATUS.
  • Отсутствуют ошибки в Last_IO_Error и Last_SQL_Error.
  • Данные в exampledb на слейве соответствуют мастеру (проверочные таблицы/записи).

Быстрый помощник (Cheat sheet)

  • Создать базу: CREATE DATABASE exampledb;
  • Импорт дампа: mysql -u root -p exampledb < /path/to/exampledb.sql
  • Загрузить с мастера: LOAD DATA FROM MASTER;
  • Остановить/запустить слейв: SLAVE STOP; / START SLAVE;
  • Привязать к мастеру: CHANGE MASTER TO …
  • Проверить статус: SHOW SLAVE STATUS\G

Когда это не сработает — типовые контрпримерные ситуации

  • Если структура таблиц на мастере и слейве различается — репликация выдаст ошибки SQL. Решение: синхронизируйте схему перед репликацией.
  • Если в сети блокируется порт 3306 — слейв не подключится. Решение: открыть порт или настроить VPN/SSH-туннель.
  • Если был пропущен дамп и мастер уже продвинулся — получение данных может привести к рассинхронизации; в этом случае лучше сделать свежий дамп и рестарт репликации с корректной позицией.

Итог

Следуя шагам: создайте базу на слейве, импортируйте данные или используйте LOAD DATA FROM MASTER, внесите параметры мастера в my.cnf, выполните CHANGE MASTER TO с правильными мастером-логом и позицией и запустите START SLAVE. Проверяйте SHOW SLAVE STATUS и логи в случае ошибок.

Важно: всегда делайте резервную копию данных перед началом настроек репликации.

Ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро