SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Назад

Настройка репликации MySQL


Метки: mysql репликация кластер

Ведущий (master)

Указываем

Файл /etc/my.cnf

[mysqld]
server-id = 1
log-bin = /var/lib/mysql/mysql-bin
replicate-do-db = testdb

Добавим пользователя, под правами которого будет производится репликация

GRANT replication slave ON *.* TO "replication"@"%" IDENTIFIED BY "password";
FLUSH PRIVILEGES;

Перезапускаем сервер для применения настроек

systemctl restart mysql

Проверяем запуск

SHOW MASTER STATUS\G

Перенос данных

Блокируем БД для записи

FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;

Проверяем состояние ведущего и запомним значения File и Position

SHOW MASTER STATUS\G

Делаем дамп БД

mysqldump -u<username> -p<password> <database> > ~/dump_`date +%y_%m_%d`.sql

Снимаем блокировку

SET GLOBAL read_only = OFF;

Ведомый (slave)

Файл /etc/my.cnf

[mysqld]
server-id = 2
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
replicate-do-db = testdb

Перезапускаем сервер для применения настроек

systemctl restart mysql

Проверяем запуск

SHOW MASTER STATUS\G

Перенос данных

Восстанавливаем данные из дампа

Запускаем репликацию

CHANGE MASTER TO MASTER_HOST = "192.168.1.101 ", MASTER_USER = "replication ", MASTER_PASSWORD = "password ", MASTER_LOG_FILE = "mysql-bin.000003 ", MASTER_LOG_POS = 98;
START SLAVE;

Проверка репликации

SHOW SLAVE STATUS\G