mysql主從複製中,須要將從庫提高爲主庫,須要取消其從庫角色,這可經過執行RESET SLAVE ALL清除從庫的同步複製信息、包括鏈接信息和二進制文件名、位置。從庫上執行這個命令後,使用show slave status將不會有輸出。mysql
RESET SLAVE vs. RESET SLAVE ALL: Disconnecting a replication slave is easier with MySQL 5.5+sql
參考連接:http://www.tuicool.com/articles/ZJnUn2數據庫
mysql> stop slave; QueryOK, 0 rowsaffected (0,00 sec) mysql> reset slave all; QueryOK, 0 rowsaffected (0,04 sec) mysql> show slave status\G Emptyset (0,00 sec)
此時真正實現了清除slave同步複製關係!測試
--------------------------------------------------------------------------------ui
【一】RESET MASTER參數spa
功能說明:刪除全部的binglog日誌文件,並將日誌索引文件清空,從新開始全部新的日誌文件。用於第一次進行搭建主從庫時,進行主庫binlog初始化工做;操作系統
測試以下:.net
未刪除前日誌 [root@mysql01 mysql]# pwd mysql> show master status\G; 當前有25個binlong日誌,且Position的位置爲107 |
運行RESET MASTER
mysql> reset master; mysql> show master status\G;
顯示全部的binlog已經被刪除掉,且binlog從000001 開始記錄 |
注:當數據庫要清理binlog文件的時候,能夠經過操做系統進行刪除,也能夠運行reset master進行刪除。可是若是當前是主數據庫,且主從數據庫正常的時候,千萬不能用這種方式刪除。
【使用場景】第一次搭建主從數據庫時,用於主庫的初始化binglog操做;
【二】RESET SLAVE
功能說明:用於刪除SLAVE數據庫的relaylog日誌文件,並從新啓用新的relaylog文件;
登陸從數據庫,未刪除前 mysql> show slave status\G; 當前relaylog爲0004; |
刪除後 mysql> stop slave; 先中止slave mysql> reset slave;
mysql> show slave status\G;
|
RESET SLAVE將使SLAVE忘記主從複製關係的位置信息。該語句將被用於乾淨的啓動, 它刪除master.info文件和relay-log.info 文件以及全部的relay log 文件並從新啓用一個新的relaylog文件。
使用場景:當原來的主從關係被破壞以後,從庫通過從新初始化後直接鏈接會報 ERROR 1201的錯誤,運行reset slave後,從新配置主從鏈接就能夠了;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.167',MASTER_USER='test',MASTER_PASSWORD='test', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=176658;
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log |
總結:若是是須要刪除mysql binlog和relaylog文件的時候,那麼經過操做系統的刪除或者PURGE命令均可以,可是涉及到mysql主從配置的時候便須要使用RESET MASTER和RESET SLAVE解決問題