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;

相關文章
相關標籤/搜索