master slave replication
И так у нас есть 2 сервера:
В идеале на обеих серверах у вас уже должен быть настроен веб-сервер (nginx + apache к примеру), mysql, phpmyadmin
У меня все это есть, я для теста перенес на 2 эти сервера свой сайт, создал одинаковые БД, одинаковые пользователи БД и пароли.
Теперь переходим к настройке master slave репликации:
на сервере master
Заходим в конфиг mysql:
Добавляем следующие строки:
Создадим папочку для лог-файлика Mysql.
Перегружаем mysql-server на master:
Потом заходим под рутом в консоль mysql и выполняем действия из листинга ниже:
Тут важно запомнить/сохранить/скопировать имя bin-файла и позицию, в моем случае:
— файл mysql-bin.000002
— позиция 334
На слейве эти данные необходимо ввести чтобы mysql знал откуда начинать репликацию.
Создаем дамп базы которую хотим реплицировать:
Опять идем в админку mysql и разблокируем таблицы базы:
Копируем SQL дамп на slave
Теперь заходим на сервер slave
на сервере slave
Обязательное требование к mysql — версия не ниже чем на сервере master.
Правим конфиг mysqld
Создадим папочку для лог-файлика Mysql.
Перегружаем mysql-server на slave-сервере чтобы применить изменения в конфиге:
Идем в админку mysql:
Там просто создадим пустую базу данных, с таким же именем как на master (я уже создал БД раньше, просто не заливал дамп), тут показываю как создать БД новую на всякий случай:
Заливаем dump базы admin_db скопированной с master-сервера
Опять идем в админку mysql и выполняем следующее:
Теперь смотрим статус, особое внимание уделяем Slave_IO_Running и Slave_SQL_Running, оба в нормальном рабочем состоянии должны быть Yes:
Теперь делаем следующее если у вас есть фаервол и он мешает подключению:
На слейве:
На мастере:
Вот и все, теперь все должно работать.