关于mysql主主同步的设置

在主主同步时我们需要配置auto_increment_increment和auto_increment_offset两个参数来避免id的冲突。

涉及知识介绍:
mysql服务器维护着2种mysql的系统参数(系统变量):全局变量(global variables)和会话变量(session variables)。它们的含义与区别如其各占的名称所示,session variables是在session级别的,对其的变更只会影响到本session;global variables是系统级别的,对其的变更会影响所有新session(变更时已经存在session不受影响)至下次mysql server重启动。注意它的变更影响不能跨重启,要想再mysql server重启时也使用新的值,那么就只有通过在命令行指定变量选项或者更改选项文件来指定,而通过SET变更是达不到跨重启的。
每一个系统变量都有一个默认值,这个默认值是在编译mysql系统的时候确定的。对系统变量的指定,一般可以在server启动的时候在命令行指定选项或者通过选项文件来指定,当然,大部分的系统变量,可以在系统的运行时,通过set命令指定其值。

查看mysql 相关全局变量的方法如下:

show variables like '%auto_increment%'; 

关于mysql主主同步的设置_第1张图片
变量名 auto_increment_increment 就是指 字段一次递增多少;
变量名 auto_increment_offset 指 自增字段的起始值。

设置全局变量:
方法一:#设置auto_increment_increment自增步长为n,也就是每插入一条数据,就加n,这个N必须是一个数字。默认是1
mysql> SET @@auto_increment_increment=n;

设置auto_increment_offset自增开始数字为m,在新建表的自增熟悉时候,且表示空的。自增数字默认从m开始
mysql> SET @@auto_increment_offset=m;

如果以上方法还不生效,或者重启mysql后,又变回来了。那肯定是在my.cnf里面设置了全局变量。这个必须到配置文件里面去修改了;这种修改永久有效。而且无法通过上面的操作再次被修改。

方法二:
用vi编辑器打开配置文件,默认位置
vi /etc/my.cnf
找到 auto_increment_increment 变量设置的地方;VI里面可以用 “/auto_increment_increment” 找到。
找到后设置auto_increment_increment=1;即可

其他全局变量也可在此配置文件里面永久设置好。
配置文件修改好后,要重启mysql服务才会生效。
/etc/init.d/mysql restart

你可能感兴趣的:(mysql)