reset master 不能乱用呀

 

在主从环境了  用这个  从会挂掉的呢mysql

谈谈这两天作mysql guid主从的痛sql

需求1:ui

将一个单点mysql进行迁移spa

这个比较简单,我搭建了同版本的mysql,而后mysqldump备份数据导入,数据没有更新,完整就直接导入了日志

需求2:code

以为单点比较不靠谱,决定将之前的一个从库,注意这个从库是好久以前的旧的mysql主的从库,从新做为新的主库的从库blog

首先我直接向gtid能够自动寻找,那就直接将这个从库指向新的主库吧,结果报错找不到log文件,难道是觉得从库是旧的,保留的都是曾经的主的gtid的信息,因此不行,这里我仍是疑惑的io

后来决定从新拿一份新主的最新备份,导入从库,从新作主从,仍是报错1146,不知道为啥ast

我很气 class

我又从新搭建了最新的从库导入数据,也报错,我还鬼使神差的在主上执行了 reset master ,而后我就导入着数据,回家了,早晨来一看,主上的binlog没了,只剩00001了,又没有完整的日志文件了

 

如今我没辙 继续从新那一份最新的数据导入一下吧

 

若是你这么干了,恢复的方法

1.从主库拿一份最新的数据,新的程度要在作reset master; 这个操做以后

2.从库上(别执行,下边还有呢,看完了再说)

stop slave;

reset slave;

导入数据;

从新指定主;

start slave;

而后报错以下:

  Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave has more GTIDs than the master has, using the master's SERVER_UUID. This may indicate that the end of the binary log was truncated or that the last binary log file was lost, e.g., after a power or disk failure when sync_binlog != 1. The master may or may not have rolled back transactions that were already replica'

解决方法:

在从上执行 reset master;

在从库上执行这个命令的做用是 清空从库的gtid

而后继续观察

若是还报错 就

stop slave;

reset slave;

从新指定主;

start slave;

reset master;

而后个人继续报错

  Last_SQL_Errno: 1007
               Last_SQL_Error: Error 'Can't create database 'mm'; database exists' on query. Default database: 'mm'. Query: 'create database mm'
这种错误叫可控的错误

两种方法:

在配置文件里设置跳过这个错误

在从库上删除这个库,而后stop slave; start slave;

相关文章
相关标签/搜索