兩台主機A、B搭建mysql主從復制關系(A為master,B為slave)后,在slave上執行show slave status,結果中顯示Last_IO_Error: error connecting to master 'replication@VMS00782:3306'……
首先查看B的錯誤日志文件,發現如下錯誤:
ERROR] Slave I/O: error connecting to master 'replication@VMS00782:3306' - retry-time: 60 retries: 2, Error_code: 1045
接着用perror查看上一部獲得的錯誤代碼:
perror 1045
輸出:MySQL error code 1045 (ER_ACCESS_DENIED_ERROR): Access denied for user '%-.48s'@'%-.64s' (using password: %s)
難道是復制用的賬戶存在問題??先在A上確認復制用戶賬戶是否存在且是否賦了正確的權限
mysql> show grants for 'usvr_replication'@'%';
+-----------------------------------------------------------------------------------------------------------------------------+
| Grants for usvr_replication@% |
+-----------------------------------------------------------------------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'usvr_replication'@'%' IDENTIFIED BY PASSWORD '*F4039654D0AFD80BB0A7775938EFD47ACB809529' |
+-----------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
發現沒有問題!
然后,試着從B使用該賬戶連接至A:
mysql -uusvr_replication -h 192.168.83.35 -p -P55944
輸入設置的密碼后回車,沒連上!!!再次輸入,還沒連上!!!
看來問題出在這兒了,仔細檢查,原來是密碼記錯了!
試着用正確的密碼重建復制關系:
在B上執行:
mysql>stop slave;
mysql>researt slave;
mysql>change master to master_host = 'VMS00782',
master_user = 'replication',
master_password = 'ReplPass@123456',
master_port = 3306,
master_log_file = 'VMS00782-bin.000001',
master_log_pos = 120;
mysql>start slave;
mysql>show slave status;
一切正常!!!
需要注意的幾個問題:
要在change master to語句的master_password部分使用原始的密碼而非散列過的密碼。
注意在第一時間查看錯誤日志文件,可使用perror工具根據錯誤代碼查看具體的錯誤。
另外幾個常見問題:
mysql無法啟動:先看錯誤日志文件中提示的錯誤,依據錯誤找原因;查看配置文件中數據目錄等配置是否正確;檢查MySQL相關目錄屬主和屬組是否正確;查看是否有之前未被正確關閉的mysqld進程仍在運行。
mysql無法連接:先看mysqld進程是否正確啟動了;再看提供的連接串是否爭取無誤。
轉載:http://blog.csdn.net/zyz511919766/article/details/12753025
