我有一個MySQL複製的問題 - 在主服務器上有一個表沒有出現在從屬服務器上。 master和slave都具有相同的master_log_file和master_log_position,slave_io和slave_sql線程都在運行,我甚至試圖向master數據庫添加一個空表,但它確實出現在slave數據庫上。這不是我第一次得到這樣的錯誤,但在此之前,我的symptopms是新數據沒有出現在從屬數據庫中。有沒有其他的解決方案,比停止複製奴隸,刪除數據庫,轉儲它在主服務器,rsyncing從服務器和重新啓動複製從新的文件/位置?MYSQL複製不適用於所有表
我注意到使用
SHOW SLAVE STATUS;
即RELAY_LOG_POS比Read_Master_Log_Pos小,RELAY_LOG_FILE從MASTER_LOG_FILE不同,但Slave_SQL_Running_State說
Slave has read all relay log; waiting for more updates
說的Seconds_Behind_Master 0
首先,Relay_Log_Pos和Read_Master_Log_Pos是不同的值,可以不同,這很好。對於你的複製:你使用相同的mysql版本和配置嗎?如果您運行的聲明依賴於其他服務器不支持/已禁用的功能,則可能會出現類似這樣的問題。你有沒有嘗試創建一個相同的表(使用不同的名稱)到不復制的表來檢查表是否使用了某些在從屬上不起作用的表? – Solarflare
是否爲replicate_do_db/replicate_do_table設置了任何值?這些在my.cnf中,並且處於奴隸狀態。重新振作痛苦 - 同意。你是什麼binlog_format?行,混合,聲明?用mysqlbinlog檢查binlog的內容 - 確保它在那裏,否則,它絕對不會複製... –
@KevinBott我沒有爲replicate_do_db設置值,我用binlog_do_db在主端進行過濾,我的binlog_format是混合。 – baskax