主库:[mysqld] 下面
主从通过这个id沟通,主从配置id不能相同
server-id = 1
同步数据库名称
binlog-do-db=kdmer
主执行sql, 允许从库ip同步。
grant replication slave on *.* to '从库用户名例如:guanliyuan'@'从库ip:123.2.2.2' identified by '从库连接密码:123456';
#刷新生效
FLUSH PRIVILEGES;
# 查看你主库状态以便复制你的日志文件名称
show master status;
从库配置:
指定slave要复制哪个库, 注意必须和主库名字一致
replicate-do-db = kdmerp
跳过错误类型
slave-skip-errors=1146
server-id = 2
从库执行命令
change master to master_host='主库ip:123.3.3.3',master_user='你上面命令的用户名',master_password='上面吗的密码:123456',master_log_file='上面的日志名',master_log_pos=2;
#启动
start slave;
#停止
stop slave;
#查看查看slave的状态, 这个很重要, 查看错误日志以修改调试
show slave status\G;
注意主从同步前,从库必须和主库保持数据一致。
然后主库做任何操作,包括建表,改表结构,增删改查数据,从库都会同步修改。
最后根据你 show slave status 错误状态去调试通过。日志报的比较详细。