出现的问题(多主自增长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.cnf上加入参数
auto_increment_offset = 1
auto_increment_increment = 2
这样A的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID了
B:my.cnf上加入参数
auto_increment_offset = 2
auto_increment_increment = 2
这样B的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID了
可以看出,你的auto_increment字段在不同的服务器之间绝对不会重复,所以Master-Master结构就没有任何问题了。当然,你还可以使用3台,4台,或者N台服务器,只要保证auto_increment_increment = N 再设置一下auto_increment_offset为适当的初始值就可以了,那样,我们的MySQL可以同时有几十台主服务器,而不会出现自增长ID 重复。
mysql 双向同步的键值冲突问题的解决方法分享
2019-11-25 16:30MYSQL教程网 Mysql
多主互备和主从复制有一些区别,因为多主中都可以对服务器有写权限,所以设计到自增长重复问题
延伸 · 阅读
- 2019-11-25Mysql(MyISAM)的读写互斥锁问题的解决方法
- 2019-11-25mysql 不能插入中文问题
- 2019-11-25MySQL配置文件my.cnf中文详解附mysql性能优化方法分
- 2019-11-25MySQL安装详解图文版(V5.5 For Windows)
- 2019-11-25将MySQL从MyISAM转换成InnoDB错误和解决办法
- 2019-11-25mysql 提示INNODB错误的解决方法
精彩推荐
- Mysql
Mysql数据表中的蠕虫复制使用方法
在本文中我们给大家分享了关于怎么使用Mysql数据表中的蠕虫复制的相关知识点,有兴趣的朋友们学习下。...
- Mysql
MYSQL常用命令与实用技巧
MYSQL常用命令与实用技巧...
- Mysql
win2003 安装2个mysql实例做主从同步服务配置
注意的就是路径的正确书写。然后在my.ini的配置中,server_id必须保持唯一性。port避免使用3306,服务名称和mysql5.1不一样即可。 ...
- Mysql
为mysql数据库添加事务处理的方法
开始首先说明一下,mysql数据库默认的数据库引擎是MyISAM,是不支持事务的,单数如果你添加了数据执行语句是不会出错的,单数不管用,即便是回滚事务,...
- Mysql
如何恢复MYSQL的ROOT口令
如果你忘记了你的 MYSQL 的root 口令 的话,你可以通过下面的过程 恢复 。 1.向mysqldserver发送kill命令关掉mysqldserver(不是kill-9),存放进程ID的文件通常在MYSQL的...
- Mysql
mysql删除重复记录语句的方法
查询及删除重复记录的SQL语句,虽然有点乱,但内容还是不错的。 ...
- Mysql
Mysql 日期时间 DATE_FORMAT(date,format)
Mysql 日期时间 DATE_FORMAT(date,format) ,需要的朋友可以参考下。 ...
- Mysql
SQL和NoSQL之间的区别总结
在本篇内容里我们给大家精选了关于SQL和NoSQL之间的区别的总结内容,对此有需要的朋友们跟着学习下。...