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如何設定的詳細資訊,請參閱 第 6.2.2.2 節,「使用選項檔案」。USER此變數是從使用者特定的
~/.my.cnf選項檔案設定的。
VARIABLE_PATH如果變數是從選項檔案設定的,則
VARIABLE_PATH是該檔案的路徑名稱。否則,該值為空字串。MIN_VALUE變數允許的最小值。對於類型不是數值的變數,此值始終為 0。
此欄位在 MySQL 9.0 中已棄用,並可能在未來的版本中移除;請改用
variables_metadata表格的MIN_VALUE欄位來取得此資訊。MAX_VALUE變數允許的最大值。對於類型不是數值的變數,此值始終為 0。
此欄位在 MySQL 9.0 中已棄用,並可能在未來的版本中移除;請改用
variables_metadata表格的MAX_VALUE欄位來取得此資訊。SET_TIME最近一次設定變數的時間。預設值是伺服器啟動期間初始化全域系統變數的時間。
SET_USER,SET_HOST最近一次設定變數的客戶端使用者的使用者名稱和主機名稱。如果客戶端以
user17從主機host34.example.com使用帳戶'user17'@'%.example.com'連線,則SET_USER和SET_HOST分別為user17和host34.example.com。對於代理使用者連線,這些值對應於外部(代理)使用者,而不是執行權限檢查的代理使用者。每個欄位的預設值為空字串,表示自伺服器啟動以來,該變數尚未被設定。
variables_info 表格沒有索引。
TRUNCATE TABLE 不允許用於 variables_info 表格。
如果 VARIABLE_SOURCE 值不是 DYNAMIC 的變數在執行階段被設定,則 VARIABLE_SOURCE 會變成 DYNAMIC 且 VARIABLE_PATH 會變成空字串。
只有工作階段值的系統變數(例如 debug_sync)無法在啟動時設定或持久化。對於僅限工作階段的系統變數,VARIABLE_SOURCE 只能是 COMPILED 或 DYNAMIC。
如果系統變數有非預期的 VARIABLE_SOURCE 值,請考慮您的伺服器啟動方法。例如,mysqld_safe 會讀取選項檔案,並將它在那裡找到的某些選項作為用於啟動 mysqld 的命令列的一部分傳遞。因此,您在選項檔案中設定的一些系統變數可能會在 variables_info 中顯示為 COMMAND_LINE,而不是您可能預期的 GLOBAL 或 SERVER。
一些使用 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 | +--------------------------+----------------+-----------+-----------+