自学内容网 自学内容网

通过 Docker 对 MySQL 做主从复制的时候,因为ip不对导致不能同步。后又因为二进制的偏移量写的不对,导致不能同步的问题

问题一:Error connecting to source 'slave@127.0.0.1:3307'. This was attempt 3/86400, with a delay of 30 seconds between attempts. Message: Can't connect to MySQL server on '127.0.0.1:3307' (111)

就是因为这个ip不对,导致的异常。

解决方式:

切换到从数据库中,停止同步主数据库数据

#停止从数据库同步主数据库
stop slave;

在从数据库中,更换ip,配置主从复制

change master to \
master_host='192.168.199.153',master_user='slave',master_password='root', \
master_port=3307,master_log_file='mall-mysql-bin.000001', \
master_log_pos=1200,master_connect_retry=30;

切换到主数据库中,进行配置:

#删除原来的slave用户
drop user 'slave'@'%';
#再次创建slave同步数据用户
create user 'slave'@'%' identified  with mysql_native_password by 'root';
# 给用户slave授权
grant replication slave,replication client on *.* to 'slave'@'%';

在从数据库中,开启主从复制

start slave;

再次切换到从数据库中,查看状态

show slave status \G;

问题二:Got fatal error 1236 from source when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on source; the first event 'mall-mysql-bin.000001' at 893, the last event read from './mall-mysql-bin.000001' at 126, the last byte read from './mall-mysql-bin.000001' at 912.'

这个错误就是,在同步的时候,没有找到二进制文件的偏移量导致的。

解决办法:

在主数据库查看状态,并重置主库的值,再查状态

show master status;
flush logs;
show master status;

去从库停止主从复制

stop slave;


flush privileges;

在从库中重新配置主从复制,并开启主从复制

这里的偏移量来自于主库的Position的值

#配置主从复制
change master to \
master_host='192.168.199.153',master_user='slave',master_password='root', \
master_port=3307,master_log_file='mall-mysql-bin.000001', \
master_log_pos=157,master_connect_retry=30;


#开启主从复制
start slave;

最后,在主库建库建表及数据,都会同步到从库中。这里就不做展示了。


原文地址:https://blog.csdn.net/iteye_9939/article/details/143858718

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!