实时查看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 | +------------------+--------------------------------+ 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
重启后失效。
查看实时日志
如果我们已经打开了常规日志的记录,我们可以通过常规日志文件的查看来得到实时日志:
# -f 代表会实时读取该文件的更新内容 tail -f /usr/local/mysql/log/mysql.log
然后你就能在终端里看到MySQL
的实时执行记录,如果觉得刷新过快,也可以使用vim/tail
等方法来查看该日志文件进行分析。
参考资料
- MySQL查看实时执行的SQL语句:https://www.awaimai.com/1910....
- 用service命令管理mysql启停:https://segmentfault.com/a/11...
相关推荐
zhuxue 2020-10-14
zhangbingb 2020-09-21
HeronLinuxampARM 2020-09-14
美丽的泡沫 2020-09-08
goodstudy 2020-08-19
luvhl 2020-08-17
littleFatty 2020-08-16
gamestart0 2020-08-15
URML 2020-08-15
sfkong 2020-08-02
82941732 2020-07-27
偏头痛杨 2020-07-18
timewind 2020-07-04
89407707 2020-06-27
xiaoxiaoCNDS 2020-06-26
lyjava 2020-06-26
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。以上实例中 7、5 和 12 是操作数。关系运算符用于计算结果是否为 true 或者 false。逻辑运算符用于测定变量或值之间的逻辑。
ChaITSimpleLove 2020-06-25
Strongding 2020-06-25