咱們在追查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