問題描述:
slave不能同步master的一張表,其他表都正常。
排查:
show slave status;看都正常。
mysqlbinlog 打開中繼日志看,發(fā)現(xiàn)沒有這張表的insert語句,證明sql沒有從master同步過來。
去master看binlog,發(fā)現(xiàn)也沒有這張表的insert操作,手動執(zhí)行一下alter table是能寫進binlog的。
去查master的my.cnf,發(fā)現(xiàn)有個這樣的配置:
replicate-ignore-db = mysql
binlog-ignore-db = mysql
意思是在mysql庫里做的操作不寫binlog,slave也過濾掉mysql庫里的操作。
基本上確定是這個配置的問題了,實驗了下use mysql;后,去更新其他庫里的表,發(fā)現(xiàn)沒有寫binlog。
注銷掉這兩個配置,重啟了master,重新做了slave,一切恢復正常。
看來應用在insert的時候,不一定是在當前庫中操作。所以為防止主從數(shù)據(jù)不一致,最好所有的庫都進行同步。