auto_increment_increment は MySQL の再起動後にリセットされますか?

auto_increment_increment は MySQL の再起動後にリセットされますか?

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

それは動作するはずです (自分ではテストしていません)。興味深いことに、なぜそのような動作が必要なのですか?

関連情報