Skip to main content

Mysql主从复制,延迟从库


1、主从节点开启log_bin,配置文件中移除 skip-log-bin 配置项


2、增加主从复制配置 [mysqld]
   a、主节点
vi /etc/my.cnf

server-id = 1
log-bin = /home/shuncom/mysql/data/mysql-bin
binlog_cache_size = 4M
binlog_format = mixed
max_binlog_cache_size = 8M
max_binlog_size = 512M
expire_logs_days = 14
gtid_mode = ON
enforce_gtid_consistency = ON

重启mysql服务
systemctl restart mysqld.service

    b、从节点
vi /etc/my.cnf

server-id = 2
slave-skip-errors=1007,1022,1050,1062,1169
relay-log=/home/shuncom/mysql/data/relay-log
max_relay_log_size=512M
relay-log-purge=ON
read-only
gtid_mode = ON
enforce_gtid_consistency = ON

重启mysql服务
systemctl restart mysqld.service

3、创建主从复制账户
    a、以root登录主节点
mysql -u root -p'Sz_clighting'
    b、创建复制用户(用户名、密码为示例),并授予权限
CREATE USER 'replicator'@'%' IDENTIFIED BY 'Passw0rd';  
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';  
FLUSH PRIVILEGES;
SHOW MASTER STATUS\G; -- 获取 MASTER_LOG_FILE、MASTER_LOG_POS


4、从节点开启复制
    a、以root用户登录从节点
mysql -u root -p'Sz_clighting'
    b、开启复制
CHANGE MASTER TO 
MASTER_HOST='172.17.20.17', 
MASTER_PORT=3306, 
MASTER_USER='replicator', 
MASTER_PASSWORD='Passw0rd', 
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=868,
get_master_public_key=1;

CHANGE MASTER TO MASTER_DELAY = 3600;
START SLAVE;
SHOW SLAVE STATUS\G;