登录
首页 >  数据库 >  MySQL

实时查看MySQL执行的语句

来源:SegmentFault

时间:2023-01-16 11:52:34 130浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是数据库学习者,那么本文《实时查看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 |
+------------------+--------------------------------+
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
等方法来查看该日志文件进行分析。

参考资料

  1. MySQL查看实时执行的SQL语句:https://www.awaimai.com/1910....
  2. 用service命令管理mysql启停:https://segmentfault.com/a/11...

到这里,我们也就讲完了《实时查看MySQL执行的语句》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于mysql的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>