1. 程式人生 > >MySQL檢視實時執行的SQL語句

MySQL檢視實時執行的SQL語句

MySQL預設不能實時檢視執行的SQL語句,因為這會消耗一定的資源。

要開啟這個功能,稍微配置一下,開啟這個LOG記錄就可以了。

1 檢視LOG功能

首先,檢視是否已經開啟實時SQL語句記錄。

mysql> SHOW VARIABLES LIKE "general_log%";

如下general_log值為OFF說明沒有開啟:

+------------------+----------------------------------+
| Variable_name    | Value                            |
+------------------+----------------------------------+
|
general_log | OFF | | general_log_file | /var/lib/mysql/galley-pc.log | +------------------+----------------------------------+ 2 rows in set (0.00 sec)

2 開啟LOG功能

2.1 臨時開啟

如下,開啟實時記錄SQL語句功能,並指定自定義的log路徑:

mysql> SET GLOBAL general_log = 'ON';
mysql> SET GLOBAL general_log_file = '/var/log/mysql/general_log.log'
;

這兩個命令在MySQL重啟後失效,為臨時方法。

說明:這個檔案會隨著訪問的增加而不斷變大,所以生產環境建議臨時開啟,用完及時關閉。

2.2 永久開啟

永久有效需要配置my.cnf檔案,加入下面兩行:

general_log = 1
general_log_file = /var/log/mysql/general_sql.log

重啟MySQL生效。

3 實時檢視

過一小段時間後,就可以匯出檢視/var/lib/mysql/sql_statement.log檔案了,裡面記錄了所有執行的SQL語句。

如果要實時檢視該檔案的改動,在Linux系統用tail命令:

$ tail -f /var/lib/mysql/general_sql.log

另外,也可以用軟體實時檢視。