1. 程式人生 > 其它 >mysql執行語句_實時檢視MySQL執行的語句

mysql執行語句_實時檢視MySQL執行的語句

我們在追查MySQL問題和效能調優時,有時希望看到當前都有哪些命令正在被執行,讓我們迅速找到熱點命令。下面我們就來介紹下如何檢視當前正在執行的MySQL語句。

日誌LOG

我們之前在 用service命令管理mysql啟停 文章中已經使用過MySQL的錯誤日誌,它在my.cnf配置檔案中指定位置:

[mysqld]

log-error = /user/local/mysql/log/mysql.err

該引數指定了錯誤檔案位置,能夠記錄所有的錯誤日誌,在問題追查時非常關鍵。類似的,我們還可以指定常規日誌:

[mysqld]

# 控制是否開啟常規日誌

general_log=true

# 指定常規日誌的檔案路徑

general_log_file=/usr/local/mysql/log/mysql.log

這個配置預設是關閉的,因為這個日誌檔案會膨脹的很快,在大型業務中可能很快耗盡磁碟空間,因此一般只在追查問題時臨時開啟,使用完成後關閉。

如果我們更改了這個配置,需要重啟MySQL服務。

檢視常規日誌是否開啟

mysql> show variables like 'general%';

+------------------+--------------------------------+

| Variable_name | Value |

+------------------+--------------------------------+
| general_log | ON | | general_log_file | /usr/local/mysql/log/mysql.log | +------------------+--------------------------------+

如果我們想要更改該引數,可以使用:

mysql> set global general_log=off;

Query OK, 0 rows affected (0.01 sec)

由於general_log是全域性的變數,因此必須帶上global引數。如果不是通過配置檔案的方式變更狀態,會在MySQL重啟後失效。

檢視實時日誌

如果我們已經打開了常規日誌的記錄,我們可以通過常規日誌檔案的檢視來得到實時日誌:

# -f 代表會實時讀取該檔案的更新內容

tail -f /usr/local/mysql/log/mysql.log

然後你就能在終端裡看到MySQL的實時執行記錄,如果覺得重新整理過快,也可以使用vim/tail等方法來檢視該日誌檔案進行分析。