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 #跳过所有错误