mysql 主從同步經常由於某些原因導致主從同步失敗。問題不一而足。今天遇到的問題是【Error 'Table 'acexeym_alltrace.lbg_alcohol_temperature_vol' doesn't exist' on query.Default database: 'acexeym_comm'. Query: 'TRUNCATE TABLE acexeym_alltrace.lbg_alcohol_temperature_vol'】,分析原因,因爲主從同步指定了【acexeym_comm】可能是在這個庫的界面上執行了 【TRUNCATE TABLE acexeym_alltrace.lbg_alcohol_temperature_vol】語句,導致數據庫同步是,不能正確處理。應該使用【use acexeym_alltrace;TRUNCATE TABLE acexeym_alltrace.lbg_alcohol_temperature_vol;】這樣的語句。錯誤的處理方法,尚未找到。先執行恢復主從同步的操作。
1.先停掉從服務器。stop SLAVE;
2.設置跳過這個錯誤。SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
3.此步可以忽略,查看設置跳過錯誤的結果。SHOW GLOBAL VARIABLES LIKE 'SQL_SLAVE_SKIP_COUNTER';
4.再次啓動從服務器。start slave;
5.查看從服務器的狀態。show slave status ;主要關注Slave_IO_Running,Slave_SQL_Running這兩個信息。都要是yes纔是正常的。
後來百度查到可以在my.cnf配置文件中跳過錯誤。還沒有時間驗證,記錄在此。
[mysqld]
#slave-skip-errors=1062,1053,1146 #跳過指定error no類型的錯誤
#slave-skip-errors=all #跳過所有錯誤