“开启掘金成长之旅!这是我参与「掘金日新计划 · 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;
有如下信息报错
根据报错可以看到从服务读取主服务的时候,读取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文件时,之后报错