實時查看MySQL執行的語句

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

日誌LOG

咱們以前在 用service命令管理mysql啓停 文章中已經使用過MySQL的錯誤日誌,它在my.cnf配置文件中指定位置:mysql

[mysqld]
log-error = /user/local/mysql/log/mysql.err

該參數指定了錯誤文件位置,可以記錄全部的錯誤日誌,在問題追查時很是關鍵。相似的,咱們還能夠指定常規日誌:sql

[mysqld]
# 控制是否開啓常規日誌
general_log=true
# 指定常規日誌的文件路徑
general_log_file=/usr/local/mysql/log/mysql.log

這個配置默認是關閉的,由於這個日誌文件會膨脹的很快,在大型業務中可能很快耗盡磁盤空間,所以通常只在追查問題時臨時打開,使用完成後關閉。vim

若是咱們更改了這個配置,須要重啓MySQL服務。segmentfault

查看常規日誌是否打開

mysql> show variables like 'general%';
+------------------+--------------------------------+
| Variable_name    | Value                          |
+------------------+--------------------------------+
| general_log      | ON                            |
| general_log_file | /usr/local/mysql/log/mysql.log |
+------------------+--------------------------------+
2 rows in set (0.00 sec)

若是咱們想要更改該參數,可使用:性能

mysql> set global general_log=off;
Query OK, 0 rows affected (0.01 sec)

因爲general_log是全局的變量,所以必須帶上global參數。若是不是經過配置文件的方式變動狀態,會在MySQL重啓後失效。日誌

查看實時日誌

若是咱們已經打開了常規日誌的記錄,咱們能夠經過常規日誌文件的查看來獲得實時日誌:code

# -f 表明會實時讀取該文件的更新內容
tail -f /usr/local/mysql/log/mysql.log

而後你就能在終端裏看到MySQL的實時執行記錄,若是以爲刷新過快,也可使用vim/tail等方法來查看該日誌文件進行分析。htm

參考資料

  1. MySQL查看實時執行的SQL語句:https://www.awaimai.com/1910....
  2. 用service命令管理mysql啓停:https://segmentfault.com/a/11...
相關文章
相關標籤/搜索