我以root身份运行命令:
set @@auto_increment_offset = 2;
但是从其他联系中看不到效果。为什么不?这是全球性的。
来自http://dev.mysql.com/doc/refman/5.1/en/replication-options-master.html: “如果设置了任一变量的全局值,则其效果将持续,直到通过设置会话值或直到重新启动mysqld来更改或覆盖全局值。”
这似乎与我所看到的不一致。
最后,我想知道是否有办法在不重启mysqld的情况下永久设置所有客户端的偏移量?
答案 0 :(得分:5)
根据MySQL documentation,您需要为auto_increment_offset
和GLOBAL
设置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。'相同,它设置会话变量。