0

コマンドをルートとして実行しました:

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_offsetに従って、 との両方にの値を設定する必要がありGLOBALます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 に答える