修改hostname導致mysql重啟slave失敗的修復方法
- 2019 年 10 月 5 日
- 筆記
修改hostname導致mysql重啟slave失敗的修復方法
(只針對於把slave的資訊存在文件裡面會出現這種情況,如果存在表裡就不會有這種問題發生):
有時候我們很早之前修改完主機名後,跑了好幾個月後,突然系統出問題,重啟了資料庫,發現start slave起不來了。提示找不到relay-log的文件名和位移了。
解決方法:
> show slave statusG 記下目前的執行到的master的binlog的文件名和binlog pos:
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.0.21.66
Master_User: rpl
Master_Port: 3306
Master_Log_File: mysql-bin.000308
Exec_Master_Log_Pos: 169761782
然後執行:
> reset slave all;
重新執行change master:
> CHANGE MASTER TO
MASTER_HOST='10.0.21.66',
MASTER_USER='rpl',
MASTER_PASSWORD='rpl',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000308',
MASTER_LOG_POS=169761782;
啟動slave:
> start slave;
> show slave statusG
#### 要避免這種情況的發生,我們只要在配置從庫之前,在my.cnf裡面配置上
master_info_repository = TABLE
relay_log_info_repository = TABLE
relay_log_recovery = 1
重啟資料庫,然後再配置change master即可。