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 | +--------------------------+----------------+-----------+-----------+