Репликация MySQL — процесс который позволяет избежать потери данных в случае выхода из строя сервера баз данных, а также позволяет увеличить производительность, путем распределения нагрузки на сервера. Приступим к настройке.
MASTER
bind-address = 0.0.0.0 server-id = 1 log_bin = /var/log/mysql/mysql-bin.log
sudo systemctl restart mysql
CREATE USER 'replica'@'IP_ADDRESS_SLAVE' IDENTIFIED BY 'PASSWORD'; GRANT REPLICATION SLAVE ON *.* TO 'replica'@'IP_ADDRESS_SLAVE'; FLUSH PRIVILEGES;
USE database_name; FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS \G
Записываем значения File и Position
mysqldump -uroot -p database_name > dump_file.sql
UNLOCK TABLES;
SLAVE
bind-address = 0.0.0.0 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log
sudo systemctl restart mysql
CREATE DATABASE database_name;
mysql -uroot -p database_name < dump_file.sql
CHANGE MASTER TO MASTER_HOST='IP_ADDRESS_MASTER', MASTER_USER='replica', MASTER_PASSWORD='PASSWORD', MASTER_LOG_FILE = 'File', MASTER_LOG_POS = Position;
START SLAVE;
SHOW SLAVE STATUS \G