在MySQL中永久设置auto_increment_offset

时间:2012-08-20 06:19:26

标签: mysql auto-increment

我以root身份运行命令:

set @@auto_increment_offset = 2;

但是从其他联系中看不到效果。为什么不?这是全球性的。

来自http://dev.mysql.com/doc/refman/5.1/en/replication-options-master.html: “如果设置了任一变量的全局值,则其效果将持续,直到通过设置会话值或直到重新启动mysqld来更改或覆盖全局值。”

这似乎与我所看到的不一致。

最后,我想知道是否有办法在不重启mysqld的情况下永久设置所有客户端的偏移量?

2 个答案:

答案 0 :(得分:5)

根据MySQL documentation,您需要为auto_increment_offsetGLOBAL设置SESSION的值。

SET GLOBAL auto_increment_offset  = 2;
SET SESSION auto_increment_offset  = 2;

SHOW VARIABLES LIKE '%auto_increment_offset%';

如果设置了任一变量的全局值,则通过设置会话值或直到重新启动mysqld,其效果将持续到全局值更改或覆盖为止。如果设置了本地值,则新值将影响当前用户在会话期间插入新行的所有表的AUTO_INCREMENT列,除非在该会话期间更改了值。

答案 1 :(得分:4)

要在全局设置它,您应该添加前缀'GLOBAL'或'@@ global。'。例如 -

SET @@GLOBAL.auto_increment_offset = 2;

'@@'与'SESSION'或'@@ session。'相同,它设置会话变量。

Using System Variables