集群中mysql主从数据库同步问题

74 阅读1分钟

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

在master上查看允许中的pod

kubectl get po

通过kubectl exec命令进入到pod中,首先进入到从服务器

kubectl exec -it <pod 容器名称> -- bash

一般的配置文件目录/etc/mysql路径下,log日志在/var/log/mysql下

登录mysql (root 为用户名),之后输入密码

mysql -uroot -p

查看当前从服务器状态(MASTER 为mysql从服务名称)

SHOW MASTER STATUS\G;

有如下信息报错 image.png

根据报错可以看到从服务读取主服务的时候,读取binlog文件数据的位置比当前主服务中binlog中的文件位置大,导致报错。

产生的原因可以排查一下主服务器是否重新启动过。然后查看主服务的类似于bin.000001文件(/var/log/mysql/文件下)可以使用mysqlbinlog 修改bin.000001文件

mysqlbinlog bin.000001 > bin_000001

查看文件最后的position,是否跟从服务器中报错的位置(在SHOW SLAVE STATUS\G;中可以查看到)一直

tail -10 bin_000001

问题原因主服务崩溃重启后,有一部分binglogcache中的数据丢失,导致从服务访问主服务器的binglog文件时,之后报错