回覆列表
-
1 # 使用者8552487138505
-
2 # 使用者4067695617167
僅僅只定義 AUTO_INCREMENT 是無法處理的。
mysql> CREATE TABLE tab (
-> id INT AUTO_INCREMENT,
-> val VARCHAR(10)
-> );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
錯誤資訊也說得很明白了.
只有一個 自動遞增的, 並且必須定義 KEY
雙主複製本身沒有衝突檢測機制,所以如果兩個主節點都同時更新了相同的主鍵,就會有衝突導致複製中斷。
如果兩個主的修改表是錯開的,讀看情況,如果是實時性要求高的,那麼需要讀寫節點一致,如果允許讀延遲,那麼可以任意選擇一個節點。
目前配置雙主複製,一般都是一個主有寫入。另一個主是為了在當前真主故障後切換到新主不需要配置複製關係。
其實如果因為多個節點多有寫入而配置雙主,那麼還是建議用MySQL Group Replication的多主模式。這才是長遠的方案。