MYSQL 5.7主从配置及偶现主从失效解决办法
配置主从
- 先行条件:主从数据库数据完全一致 ,在配置过程中主库从库都不能有新的数据写入,感觉不放心可以使用如下第一行锁定表,配置完成后使用第二行解锁
FLUSH TABLES WITH READ LOCK
UNLOCK TABLES
- 打开主数据库(专业名称叫Master)配置文件my.cnf ,补充相关配置后重启
server-id = 1
log-bin = mysql-bin
binlog-do-db = 要同步的数据库名称
- 主数据库执行 , 执行完毕之后看有没有相关输出,没有的话检查有没有重启,看看是否配置正确有没有遗漏 , 有的话记下 log_file 名字以及 pos 的数字
show master status;
- 打开从数据库(专业名称叫Slave)配置文件my.cnf , 补充相关配置后重启
server-id = 2
log-bin = mysql-bin
replicate-do-db = 要同步的数据库名称
- 停止Slave
stop slave
- 配置主数据库读取位置
change master to master_host='192.168.1.7',master_user='root',master_password='root', master_log_file='mysql_bin.000002(上面log_file的名字)',master_log_pos=154(上面pos的数字);
- 开始Slave
start slave;
- 查看备份服务器状态,其中 Slave_IO_Running 、Slave_SQL_Running 两个属性均应为Yes ,否则继续向下看,记好这几个命令,这将是全部。
show slave status;
主从配置常见错误排查及解决办法
-
Slave_IO_Running :NO
- 配置出数据读取位置时 密码 、 IP 、 pos 等写错了
- 主数据库或从数据库配置文件数据库写错了
- 防火墙端口没有开放
- 网络不通(中了前两条就自裁吧)
-
Slave_SQL_Running : NO
这种情况存在于已经跑了一段时间 , 但是莫名其妙检查的时候就断掉了
- 从数据库被执行了其它进程的写入操作,执行主数据库的SQL时发生了异常
- 从数据库从一开始跟主数据库的表或者库就不匹配,初始化同步时发生错误被忽略了
- 主从的配置文件配置的需要同步的数据库不匹配(中了2、3也可以自裁了)
解决办法:别挣扎了,从这个文章的第一行开始执行一次,注意新的 log_file 和 pos