求教,mysql主从复制,主表插入数据后,从表未同步,且状态异常
问题大概是这样的:mysql主从复制,配置好之后,查看从表状态正常:Slave_IO_Running: Yes
Slave_SQL_Running: Yes
然后在主表插入数据,从表未同步,状态异常:Slave_IO_Running: Yes
Slave_SQL_Running: No
具体情况如下:
主库在windows上,从库在虚拟机上;
主库配置 my.ini
[mysqld]
# 主从配置
# 日志文件名以“mysql-bin”作为前缀
log-bin=mysql-bin
server-id=1
binlog-do-db=blog
从库配置 my.cfg
[mysqld]
server-id = 2
port = 3306
log-bin=mysql-bin
binlog_format=mixed
windows执行show master status;
显示如下
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000035 | 1253 | blog | | |
+------------------+----------+--------------+------------------+-------------------+
虚拟机执行
stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.1.110',
MASTER_USER='root',
MASTER_PASSWORD='root',
MASTER_LOG_FILE='mysql-bin.000035',
MASTER_LOG_POS=1253;
start slave;
show slave status \G;
显示如下
红色部分这里看着是没问题的
然后在主表执行一条insert语句之后,再执行show slave status \G;
命令后,
主表数据插入成功,从表未同步,且状态异常:Slave_IO_Running: Yes
Slave_SQL_Running: No
last error 信息
Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.
使用 mysqlbinlog relay-log.info
查看日志看到如下错误ERROR: File is not a binary log file.
请问可能是哪里出了问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
解决了,是因为mysql版本不一致造成的,主库是windows的5.7版本,从库是centos的5.5。
我判断是因为从库mysql的mysqlbinlog版本太低,无法读取主库的binlog日志,导致无法同步
error意思是
binlog
不是二进制文件,你还是都用windows吧,从库也在windows上好了。或者都用docker,配起来快:repl,这个库里我就放了一主一从。
主库是windows,从库是Linux吗?
修改你从库的binlog_format=mixed改成row格式,mixed造成的问题比较多,因为没看到你的版本和主库的binlog_format信息,所以如果主库的binlog格式也是mixed或者statment格式,建议都改成row格式。
ps:推荐还是使用linux下的mysql。