variables_info
テーブルには、システム変数ごとに、最後に設定されたソースとその値の範囲が表示されます。
variables_info
テーブルには、次のカラムがあります:
-
VARIABLE_NAME
変数名。
-
VARIABLE_SOURCE
変数が最後に設定されたソース:
-
COMMAND_LINE
コマンドラインで変数が設定されました。
-
COMPILED
変数には、コンパイルされたデフォルト値があります。
COMPILED
は、他の方法で設定されない変数に使用される値です。 -
DYNAMIC
変数は実行時に設定されました。 これには、
init_file
システム変数を使用して指定されたファイル内に設定された変数が含まれます。 -
EXPLICIT
変数は、
--defaults-file
オプションで指定されたオプションファイルから設定されました。 -
EXTRA
変数は、
--defaults-extra-file
オプションで指定されたオプションファイルから設定されました。 -
GLOBAL
変数がグローバルオプションファイルから設定されました。 これには、
EXPLICIT
,EXTRA
,LOGIN
,PERSISTED
,SERVER
またはUSER
でカバーされないオプションファイルが含まれます。 -
LOGIN
変数は、ユーザー固有のログインパスファイル (
~/.mylogin.cnf
) から設定されました。 -
PERSISTED
変数がサーバー固有の
mysqld-auto.cnf
オプションファイルから設定されました。persisted_globals_load
を無効にしてサーバーを起動した場合、この値は行に含まれません。 -
SERVER
変数がサーバー固有の
オプションファイルから設定されました。$MYSQL_HOME
/my.cnfMYSQL_HOME
の設定方法の詳細は、セクション4.2.2.2「オプションファイルの使用」 を参照してください。 -
USER
変数がユーザー固有の
~/.my.cnf
オプションファイルから設定されました。
-
-
VARIABLE_PATH
変数がオプションファイルから設定された場合、
VARIABLE_PATH
はそのファイルのパス名です。 それ以外の場合、値は空の文字列です。 -
MIN_VALUE
,MAX_VALUE
変数に許可される最小値と最大値。 両方とも、そのような値を持たない変数 (つまり、数値ではない変数) の場合は 0 です。
-
SET_TIME
変数が最後に設定された時刻。 デフォルトは、起動時にサーバーがグローバルシステム変数を初期化した時刻です。
-
SET_USER
,SET_HOST
変数を最後に設定したクライアントユーザーのユーザー名とホスト名。 クライアントが
'user17'@'%.example.com
アカウントを使用してホストhost34.example.com
からuser17
として接続する場合、SET_USER
およびSET_HOST
はそれぞれuser17
およびhost34.example.com
です。 プロキシユーザー接続の場合、これらの値は権限チェックが実行されるプロキシユーザーではなく、外部 (プロキシ) ユーザーに対応します。 各カラムのデフォルトは空の文字列で、サーバーの起動後に変数が設定されていないことを示します。
variables_info
テーブルには次のインデックスがあります:
なし
TRUNCATE TABLE
は、variables_info
テーブルに対して許可されていません。
DYNAMIC
以外の VARIABLE_SOURCE
値を持つ変数が実行時に設定された場合、VARIABLE_SOURCE
は DYNAMIC
になり、VARIABLE_PATH
は空の文字列になります。
セッション値のみを持つシステム変数 (debug_sync
など) は、起動時または永続化時に設定できません。 セッション専用システム変数の場合、VARIABLE_SOURCE
には COMPILED
または DYNAMIC
のみを指定できます。
システム変数に予期しない VARIABLE_SOURCE
値が含まれている場合は、サーバーの起動方法を検討してください。 たとえば、mysqld_safe はオプションファイルを読み取り、mysqld の起動に使用するコマンドラインの一部として検出された特定のオプションを渡します。 したがって、オプションファイルに設定した一部のシステム変数は、予想されるとおりに GLOBAL
または SERVER
としてではなく、COMMAND_LINE
として variables_info
に表示される場合があります。
variables_info
テーブルを使用するいくつかのサンプルクエリーでは、次のように出力されます:
-
コマンドラインで設定された変数を表示します:
mysql> SELECT VARIABLE_NAME FROM performance_schema.variables_info WHERE VARIABLE_SOURCE = 'COMMAND_LINE' ORDER BY VARIABLE_NAME; +---------------+ | VARIABLE_NAME | +---------------+ | basedir | | datadir | | log_error | | pid_file | | plugin_dir | | port | +---------------+
-
永続ストレージから設定された変数を表示します:
mysql> SELECT VARIABLE_NAME FROM performance_schema.variables_info WHERE VARIABLE_SOURCE = 'PERSISTED' ORDER BY VARIABLE_NAME; +--------------------------+ | VARIABLE_NAME | +--------------------------+ | event_scheduler | | max_connections | | validate_password.policy | +--------------------------+
-
variables_info
をglobal_variables
テーブルと結合して、永続変数の現在の値とその値の範囲を表示します:mysql> SELECT VI.VARIABLE_NAME, GV.VARIABLE_VALUE, VI.MIN_VALUE,VI.MAX_VALUE FROM performance_schema.variables_info AS VI INNER JOIN performance_schema.global_variables AS GV USING(VARIABLE_NAME) WHERE VI.VARIABLE_SOURCE = 'PERSISTED' ORDER BY VARIABLE_NAME; +--------------------------+----------------+-----------+-----------+ | VARIABLE_NAME | VARIABLE_VALUE | MIN_VALUE | MAX_VALUE | +--------------------------+----------------+-----------+-----------+ | event_scheduler | ON | 0 | 0 | | max_connections | 200 | 1 | 100000 | | validate_password.policy | STRONG | 0 | 0 | +--------------------------+----------------+-----------+-----------+