https://blog.csdn.net/isis45454545454/article/details/126510152
master端
my.ini (my.cnf):
[mysqld]
#[必须]启用二进制日志,数据间复制必不可少
log-bin=mysql-bin
#[必须]服务器唯一ID
server-id=1
#需要同步的数据库,不在内的不同步。(不添加这行表示同步所有)
binlog-do-db=user_db
#这是不记录binlog,来达到从库不同步mysql库,以确保各自权限
binlog-ignore-db=mysql,performance_schema,information_schemacreate user slave@'%' identified by 'Jiutian.123';
GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%'WITH GRANT OPTION;
flush privileges;
show master status;slave端
my.ini (my.cnf):
[mysqld]
#[必须]服务器唯一ID
server-id=100
replicate-do-db=user_db
replicate-ignore-db=mysql,performance_schema,information_schemareplicate-do-db 设定需要复制的数据库(多数据库使用逗号,隔开)
replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)
replicate-do-table 设定需要复制的表
replicate-ignore-table 设定需要忽略的复制表
replicate-wild-do-table 同 replication-do-table 功能一样,但是可以通配符
replicate-wild-ignore-table 同 replication-ignore-table 功能一样,但是可以加通配符
stop slave;
change master to
master_host='192.168.244.128',master_port=33070,master_user='slave',master_password='Jiutian.123',
master_log_file='mysql-bin.000003',master_log_pos=873,get_master_public_key=1;
start slave;
# 如果遇到报错,执行 reset slave;
show slave status\G;Slave_SQL_Running: No 问题分析
程序可能在 slave 上进行了写操作。
也可能是 slave 机器重启后,事务回滚造成的。
解决办法一:跳过这个错误
stop slave ;
# 跳过一次
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave ;解决办法二:手动同步 pos 值
# master
show master status;
# slave
stop slave;
change master to
master_host='192.168.244.128',master_user='slave',master_password='Jiutian.123',
master_log_file='mysql-bin.000035',master_log_pos=1147,get_master_public_key=1;
start slave;
show slave status\G;