1. 備上報錯找不到log文件凳枝,
問題背景:在配置好的mysql主備環(huán)境上,正常運行狀態(tài)下旦装,兩臺服務(wù)器斷電笛坦,上電后報錯如下:mysql報錯
錯誤日志:
2019-08-05 09:35:43 29817 [ERROR] Slave I/O: error reconnecting to master 'root@172.103.201.105:23306' - retry-time: 10 retries: 1, Error_code: 2003
2019-08-05 09:35:55 29817 [Note] Slave: connected to master 'root@172.103.201.105:23306',replication resumed in log 'mysql-bin.000005' at position 963
2019-08-05 09:35:55 29817 [ERROR] Error reading packet from server: Could not open log file (server_errno=1236)
2019-08-05 09:35:55 29817 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'Could not open log file', Error_code: 1236
在主上發(fā)現(xiàn)mysql服務(wù)無法啟動,日志報錯:
2019-08-05 10:06:08 22242 [Note] InnoDB: 5.6.30 started; log sequence number 3827823
/var/hms/base_service/mysql/mysql/bin/mysqld: File '/var/hms/base_service/mysql/backup/mysql-bin.000006' not found (Errcode: 2 - No such file or directory)
2019-08-05 10:06:08 22242 [ERROR] Failed to open log (file '/var/hms/base_service/mysql/backup/mysql-bin.000006', errno 2)
2019-08-05 10:06:08 22242 [ERROR] Could not open log file
2019-08-05 10:06:08 22242 [ERROR] Can't init tc log
2019-08-05 10:06:08 22242 [ERROR] Aborting
打開mysql-bin.index疟位,發(fā)現(xiàn)index中文件已經(jīng)記錄到mysql-bin.000006瞻润,而真實不存在這個文件,因此mysql啟動時報找不到binlog日志文件甜刻;
解決此問題第一步:
編輯mysql-bin.index绍撞,刪除mysql-bin.000006記錄,重啟mysql得院,服務(wù)即可啟動
第二步傻铣,在備機上發(fā)現(xiàn)主備同步狀態(tài)未有任何改變;仍然報錯祥绞,究其原因非洲,實際上就是備機上的relay-bin log與主機上的mysql-bin log不匹配導(dǎo)致,思路就是清理掉備機上的relay log
在備機上進(jìn)入mysql命令行執(zhí)行:
stop slave;
reset slave;
CHANGE MASTER TO MASTER_HOST='xx.xx.xx.xx',
MASTER_PORT=3306,
MASTER_USER='root',
MASTER_PASSWORD='$rootpasswd',
MASTER_AUTO_POSITION=1,
MASTER_CONNECT_RETRY=10,
MASTER_HEARTBEAT_PERIOD=10000
start slave;
再執(zhí)行 show slave status\G蜕径,可以看到:
備機配置正常
持續(xù)更新中