mysql 雙向同步的鍵值衝突問題的解決方法分享

2022-09-29 18:33:09 字數 872 閱讀 2183

出現的問題(多主自增長id重複)

1:首先我們通過a,b的test表結構

2:掉a,在b上對資料表test(存在自增長id)執行插入操作,返回插入id為1

3:後停掉b,在a上對資料表test(存在自增長id)執行插入操作,返回的插入id也是1

4:然後 我們同時啟動a,b,就會出現主鍵id重複

解決方法:

我們只要保證兩台伺服器上插入的自增長資料不同就可以了

如:a查奇數id,b插偶數id,當然如果伺服器多的話,你可以定義演算法,只要不同就可以了

在這裡我們在a,b上加入引數,以實現奇偶插入

a:my.上加入引數

auto_increment_offset = 1

auto_increment_ = 2

這樣a的auto_increment欄位產生的數值是:1, 3, 5, 7, …等奇數id了

b上加入引數

auto_increment_offset = 2

auto_increment_increment = 2

這樣b的auto_increment欄位產生的數值是:2, 4, 6, 8,www.cppcns.com …等偶數id了

可以看出,你的a程式設計客棧uto_increment欄位在不同的伺服器之間絕對不會重複,所以master-master結構就沒有任何問題了。當然,你還可以使用3臺,4臺,或者n臺伺服器,只要保證auto_increment_increment = n 再設定一下auto_increment_offset為適當的初始值就可以了,那樣,我們的mysql可以同時有幾十台主伺服器,而不會出現自增長id 重複。

本文標題: mysql 雙向同步的鍵值衝突問題的解決方法分享

本文位址:

sql語句出現鍵值對衝突的解決

資料庫下方有兩張表,a表有四個欄位a,b,c,d,b表有兩個欄位key,value。a表的查詢語句 select a,b,c,d from a,這樣是可以的。但是在b中查詢語句 select key,value from b,就不可以,資料庫在查詢的時候報錯,只是提示鍵值對是錯誤的。後來才反應過來,...

MySQL 鍵值的使用

鍵值的種類 普通索引 index 唯一索引 unique 主鍵 primary key 外來鍵 foreign key 全文索引 fulltext 普通索引介紹 用來給字段值排隊,加快對資料庫查詢的速度,配置後占用物理儲存空間 主要型別有 btree b tree hash。使用規則 乙個表可以有多...

mysql主從同步切換導致資料經常丟失問題解決

mysql主庫設定了innodb flush log at trx commit 1andsync binlog 1引數保證了其一致性 切主從庫的時候,之前的從庫沒有如上的兩個引數導致現在的主從經常丟一部分資料。所以加上之後就恢復了。在使用innodb和事務的複製設定中獲得最大的永續性和一致性,需在...