從數據庫上着兩個進程的介紹
slave從數據庫機器上有兩個關鍵的進程:
一個是slave_io_running,負責與主機的io通信;
一個是slave_sql_running,負責自己的slave mysql進程。
如果是slave_io_running:no
肯定是因為log文件或者pos位置跟主服務器不對應導致的;
解決辦法:
修改從服務器與主服務器一致即可,每次主服務器的sql操作都會影響pos位置,主從服務器的pos同時改變;
mysql-> slave stop; #關閉服務
mysql-> change master to master_log_file='主服務器的文件', MASTER_LOG_POS=0;
mysql-> slave start; #開啟服務
mysql-> show slave status\G; #查看狀態是否為yes
如果是slave_sql_running:no
一般是因為執行sql語句時發生錯誤導致,這種錯誤有很多觸發方式,在此不一一列舉:
解決辦法:
1、簡單粗暴:關閉服務->跳過一條記錄->啟動服務->查看是否為yes,否:再次跳過一條記錄直到yes為止
mysql-> stop slave;
mysql-> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql-> start slave;
mysql-> show slave status\G