MySQL 8.0 リファレンスマニュアル


13.7.8.7 RESET PERSIST ステートメント

RESET PERSIST [[IF EXISTS] system_var_name]

RESET PERSIST は、永続化されたグローバルシステム変数設定をデータディレクトリの mysqld-auto.cnf オプションファイルから削除します。 永続化されたシステム変数を削除すると、その変数はサーバーの起動時に mysqld-auto.cnf から初期化されなくなります。 システム変数および mysqld-auto.cnf ファイルの永続化の詳細は、セクション5.1.9.3「永続化されるシステム変数」 を参照してください。

RESET PERSIST に必要な権限は、削除するシステム変数のタイプによって異なります:

  • 動的システム変数の場合、このステートメントには SYSTEM_VARIABLES_ADMIN 権限 (または非推奨の SUPER 権限) が必要です。

  • 読取り専用システム変数の場合、このステートメントには SYSTEM_VARIABLES_ADMIN および PERSIST_RO_VARIABLES_ADMIN 権限が必要です。

セクション5.1.9.1「システム変数権限」を参照してください。

変数名と IF EXISTS 句が存在するかどうかに応じて、RESET PERSIST ステートメントの形式は次のようになります:

  • mysqld-auto.cnf からすべての永続変数を削除するには、システム変数に名前を付けずに RESET PERSIST を使用します:

    RESET PERSIST;

    mysqld-auto.cnf に両方の種類の変数が含まれている場合は、動的システム変数と読取り専用システム変数の両方を削除する権限が必要です。

  • mysqld-auto.cnf から特定の永続変数を削除するには、ステートメントで名前を付けます:

    RESET PERSIST system_var_name;

    これには、プラグインが現在インストールされていない場合でも、プラグインシステム変数が含まれます。 変数がファイルに存在しない場合は、エラーが発生します。

  • mysqld-auto.cnf から特定の永続変数を削除し、ファイルに変数が存在しない場合にエラーではなく警告を生成するには、前の構文に IF EXISTS 句を追加します:

    RESET PERSIST IF EXISTS system_var_name;

RESET PERSIST は、persisted_globals_load システム変数の値の影響を受けません。

テーブルの内容は mysqld-auto.cnf ファイルの内容に対応しているため、RESET PERSIST はパフォーマンススキーマ persisted_variables テーブルの内容に影響します。 一方、RESET PERSIST は変数値を変更しないため、サーバーが再起動されるまでパフォーマンススキーマ variables_info テーブルの内容には影響しません。

ほかのサーバー操作の状態をクリアする RESET ステートメントのバリアントについては、セクション13.7.8.6「RESET ステートメント」 を参照してください。


関連キーワード:  ステートメント, CREATE, 変数, TABLE, DROP, PERSIST, サブクエリー, FUNCTION, SLAVE, 関数