MySQL檢視實時執行的SQL語句
阿新 • • 發佈:2019-01-03
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
另外,也可以用軟體實時檢視。