修改hostname導(dǎo)致MySQL重啟slave失敗的修復(fù)方法
為魏都等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及魏都網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、魏都網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
(只針對(duì)于把slave的信息存在文件里面會(huì)出現(xiàn)這種情況,如果存在表里就不會(huì)有這種問題發(fā)生):
有時(shí)候我們很早之前修改完主機(jī)名后,跑了好幾個(gè)月后,突然系統(tǒng)出問題,重啟了數(shù)據(jù)庫,發(fā)現(xiàn)start slave起不來了。提示找不到relay-log的文件名和位移了。
解決方法:
> show slave status\G 記下目前的執(zhí)行到的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
然后執(zhí)行:
> reset slave all;
重新執(zhí)行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;
啟動(dòng)slave:
> start slave;
> show slave status\G
#### 要避免這種情況的發(fā)生,我們只要在配置從庫之前,在my.cnf里面配置上
master_info_repository = TABLE
relay_log_info_repository = TABLE
relay_log_recovery = 1
重啟數(shù)據(jù)庫,然后再配置change master即可。