0

我以root身份运行命令:

set @@auto_increment_offset = 2;

但从其他连接上看不到效果。为什么不?它是全球性的。

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

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

最终,我想知道是否有任何方法可以在不重新启动 mysqld 的情况下为所有客户端永久设置偏移量?

4

2 回答 2

5

根据 MySQL文档,您需要为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 列,除非在该会话期间更改了值。

于 2012-08-20T06:30:27.273 回答
4

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

SET @@GLOBAL.auto_increment_offset = 2;

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

使用系统变量

于 2012-08-20T06:30:14.550 回答