实时查看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...
相关文章
相关标签/搜索