1.網(wǎng)絡的延遲
由于mysql主從復制是基于binlog的一種異步復制,通過網(wǎng)絡傳送binlog文件,理所當然網(wǎng)絡延遲是主從不同步的絕大多數(shù)的原因,特別是跨機房的數(shù)據(jù)同步出現(xiàn)這種幾率非常的大廷蓉,所以做讀寫分離,注意從業(yè)務層進行前期設計马昙。
2.主從兩臺機器的負載不一致
由于mysql主從復制是主數(shù)據(jù)庫上面啟動1個io線程桃犬,而從上面啟動1個sql線程和1個io線程刹悴,當中任何一臺機器的負載很高,忙不過來攒暇,導致其中的任何一個線程出現(xiàn)資源不足土匀,都將出現(xiàn)主從不一致的情況。
3.max_allowed_packet設置不一致
主數(shù)據(jù)庫上面設置的max_allowed_packet比從數(shù)據(jù)庫大形用,當一個大的sql語句就轧,能在主數(shù)據(jù)庫上面執(zhí)行完畢,從數(shù)據(jù)庫上面設置過小田度,無法執(zhí)行妒御,導致的主從不一致。
4.key自增鍵開始的鍵值跟自增步長設置不一致引起的主從不一致镇饺。
5.mysql異常宕機情況下乎莉,如果未設置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出現(xiàn)binlog或者relaylog文件出現(xiàn)損壞,導致主從不一致兰怠。
6.mysql本身的bug引起的主從不同步梦鉴。
7.版本不一致,特別是高版本是主揭保,低版本為從的情況下肥橙,主數(shù)據(jù)庫上面支持的功能灭红,從數(shù)據(jù)庫上面不支持該功能吱型。