Есть несколько причин для ведения репликации баз данных:
Начнем. Для примера введем некоторые данные: IP-адрес мастера 192.168.1.1, реплики — 192.168.1.2. На мастере прописываем настройки для MySQL (/etc/my.cnf)
server-id = 1 log-bin = /var/lib/mysql/mysql-bin
Добавляем пользователя, через которого будет производиться репликация:
GRANT replication slave ON *.* TO "replic"@"192.168.1.2" IDENTIFIED BY "somepasswd";
Перезагружаем Mysql, чтобы применить настройки:
service mysqld restart
Для создания реплики нужно снять текущий дамп бд с мастера, для этого нужно на время снятия дампа не изменять данные бд, т.е. либо закрыть к mysql все доступы, либо ставим режим чтения:
SET GLOBAL read_only = ON;
Далее заходим в консоль Mysql и вводим команду:
SHOW MASTER STATUS\G;
На выходе должно быть следующее: File: mysql-bin.000004 Position: 981 Binlog_Do_DB: Binlog_Ignore_DB: Нас интересуют выделенные параметры, запомните их, они нам понадобятся при создании реплики. Если пусто, значит сервер не работает в режиме мастера, проверьте настройки. Снимаем дамп любым удобным для вас способом и восстанавливаем его на реплике. Настраиваем MySQL на реплике (/etc/my.cnf):
server-id = 2
Перезагружаем MySQL для применения настроек. Заходим в консоль MySQL и прописываем настройки для подключения к мастеру.
CHANGE MASTER TO MASTER_HOST = "192.168.1.11", MASTER_USER = "replic", MASTER_PASSWORD = "somepasswd", MASTER_LOG_FILE = "mysql-bin.000004", MASTER_LOG_POS = 981; start slave;
Репликация настроена. Для просмотра статуса используем следующую команду:
SHOW SLAVE STATUS\G;
Комментарии ()