Mysql
你能在 MySQL 中看到其他使用者的會話變數嗎?
在 MySQL 中,Using
SHOW GLOBAL VARIABLES
提供了查看全域變數的能力。SHOW SESSION VARIABLES
是該會話的變數設置。有沒有辦法
SESSION
從超級使用者連接中查看其他活動的連接使用者的變數?例如,是否有查詢或視圖可以顯示哪些活動會話的變數設置與全域變數不同?
問題 #1
有沒有辦法從超級使用者連接中查看其他活動的連接使用者的 SESSION 變數?
不,沒有辦法。
問題2
是否有查詢或視圖可以顯示哪些活動會話的變數設置與全域變數不同?
不,沒有辦法。
警告
從您的個人連接中,您可以執行它
SELECT A.variable_name VarName, A.variable_value Global_Value, B.variable_value Session_Value FROM information_schema.global_variables A INNER JOIN information_schema.session_variables B USING (variable_name) WHERE A.variable_value <> B.variable_value;
查看哪些會話設置與全域設置不同。
例如,這是我正在執行的
mysql> SHOW VARIABLES LIKE 'version%'; +-------------------------+------------------------------+ | Variable_name | Value | +-------------------------+------------------------------+ | version | 5.6.15 | | version_comment | MySQL Community Server (GPL) | | version_compile_machine | x86_64 | | version_compile_os | Win64 | +-------------------------+------------------------------+ 4 rows in set (0.00 sec) mysql>
注意查詢的輸出
mysql> SELECT A.variable_name VarName, -> A.variable_value Global_Value, -> B.variable_value Session_Value FROM -> information_schema.global_variables A INNER JOIN -> information_schema.session_variables B USING (variable_name) -> WHERE A.variable_value <> B.variable_value; +--------------------------+-------------------+------------------+ | VarName | Global_Value | Session_Value | +--------------------------+-------------------+------------------+ | CHARACTER_SET_CONNECTION | latin1 | cp850 | | CHARACTER_SET_RESULTS | latin1 | cp850 | | CHARACTER_SET_DATABASE | latin1 | utf8 | | COLLATION_DATABASE | latin1_swedish_ci | utf8_general_ci | | CHARACTER_SET_CLIENT | latin1 | cp850 | | COLLATION_CONNECTION | latin1_swedish_ci | cp850_general_ci | +--------------------------+-------------------+------------------+ 6 rows in set (0.08 sec)
如果您想找到所有具有這種差異的活動連接,也許您可以讓應用程序將該查詢的輸出連同連接 ID 一起轉儲到文本文件中(使用CONNECTION_ID()函式)並根據需要對其進行解析。