概述
考虑这么一个场景,开发系统时有个模块执行很慢,但是又不知道这中间涉及到什么sql,就可以设想在没什么业务量的时候来监控数据库全部执行过的sql语句,方便排查问题。
涉及命令
1、开启general log模式
mysql>set global general_log=on;
2、关闭general log模式
mysql>set global general_log=off;
3、设置log文件路径
mysql>set global general_log_file='xx/xx/xx.log';
1、查看是否开启日志记录
show variables like “general_log%” ;
![fb29095cf5852efcfbbb34a0747dd903.png](https://i-blog.csdnimg.cn/blog_migrate/921dc3e69cede8cdd337baeafa42d914.jpeg)
2、临时开启日志记录
set global general_log='ON';
这时执行的所有sql都会被记录下来,但是如果重启mysql就会停止记录需要重新设置
![022fb44441301d972529110820adb556.png](https://i-blog.csdnimg.cn/blog_migrate/c978093f383bceac5af12edb2012de10.jpeg)
3、查看日志
# tail -f /usr/local/mysql/data/iZmfgnjkehk13uZ.log
![a08e47243814a9aa1e7c4f6cb514bf8c.png](https://i-blog.csdnimg.cn/blog_migrate/61457ab9c3efb6162a1690991c7f51be.jpeg)
这里主要是介绍general_log这个参数,大家有空也可以测试一下。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~
![ba888d2e5d195a585fab3cd893626af0.gif](https://i-blog.csdnimg.cn/blog_migrate/d10608081685a3d6c043528f8b3b34b7.gif)