mysql 重启后 auto_increment_increment 会重置吗?

mysql 重启后 auto_increment_increment 会重置吗?

auto_increment_increment我正在使用以下命令设置 MySQL 变量。

mysql -u root -p -e "SET GLOBAL auto_increment_increment = 10;"

并且一切正常,直到我重新启动 MySQL(使用sudo service mysql restart),变量才恢复为默认值。

重新启动之前:

mysql> SHOW VARIABLES LIKE 'auto_%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 10    |
| auto_increment_offset    | 1     |
+--------------------------+-------+
2 rows in set (0.00 sec)

重启后:

mysql> SHOW VARIABLES LIKE 'auto_%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 1     |
| auto_increment_offset    | 1     |
+--------------------------+-------+
2 rows in set (0.00 sec)

我怎样才能使这些改变永久生效?

答案1

您的命令只会暂时改变行为。因此,请在 中添加新配置/etc/mysql/conf.d/。避免 中的更改/etc/mysql/my.cnf。为什么?请参阅我的答案末尾。

sudo nano /etc/mysql/conf.d/my.cnf

并添加

[mysqld]
auto-increment-increment = 10

重新加载配置或者重新启动服务器。


摘自标准my.cnf

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/

答案2

正如 ssta 所指出的,您可以使用配置文件。可能最好的地方就是my.cnf启动时使用的文件。进行以下更改:

...
[mysqld]
auto_increment_increment = 10
...

保存文件并重新启动服务器。

sudo service mysql restart

这应该可行(我自己没有测试过)。好奇的是,你为什么想要这样的行为?

相关内容