mysql general log 查看mysql 运行历史

Posted llguanli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql general log 查看mysql 运行历史相关的知识,希望对你有一定的参考价值。

我们有时候须要查看mysql的运行历史,比方我们做sql优化的时候,起码要知道运行的sql是什么。框架通常会帮我们拼装sql,所以在程序中不一定能够打印出sql,这个时候就须要mysql的general
log了。


查看设置mysql genneral log

show VARIABLES like ‘%general_log%‘;

set GLOBAL general_log = off;// on-打开; off-关闭

general_log ON
general_log_file    /var/log/mysql/query.log

使用mysql general log

tail -f /path/to/log/query.log | grep yourtable
13518 Prepare   SELECT count(*) AS `count` FROM `babysitter_tips` WHERE (tip_type = ‘1‘) AND (is_enable = 1) AND (is_tip = 2)
        13518 Query DESCRIBE `babysitter_tips`
        13518 Close stmt
        13518 Prepare   SELECT `babysitter_tips`.* FROM `babysitter_tips` WHERE (tip_type = ‘1‘) AND (is_enable = 1) AND (is_tip = 2) ORDER BY `created_time` desc LIMIT 5
        13518 Reset stmt
        13518 Close stmt
        13518 Prepare   SELECT count(*) AS `count` FROM `babysitter_tips` WHERE (tip_type = ‘1‘) AND (is_enable = 1) AND (is_tip = 2) AND (tip_id > 15440)
        13518 Close stmt
        13518 Prepare   SELECT count(*) AS `count` FROM `babysitter_tips` WHERE (tip_type = ‘3‘) AND (is_enable = 1) AND (is_tip = 2)
        13518 Query DESCRIBE `babysitter_tips`
        13518 Close stmt
        13518 Prepare   SELECT `babysitter_tips`.* FROM `babysitter_tips` WHERE (tip_type = ‘3‘) AND (is_enable = 1) AND (is_tip = 2) ORDER BY `created_time` desc LIMIT 5
        13518 Reset stmt
        13518 Close stmt
        13518 Prepare   SELECT count(*) AS `count` FROM `babysitter_tips` WHERE (tip_type = ‘3‘) AND (is_enable = 1) AND (is_tip = 2) AND (tip_id > ‘‘)
        13518 Close stmt
        13518 Prepare   SELECT count(*) AS `count` FROM `babysitter_tips` WHERE (tip_type = ‘2‘) AND (is_enable = 1) AND (is_tip = 2)
        13518 Query DESCRIBE `babysitter_tips`
        13518 Close stmt
        13518 Prepare   SELECT `babysitter_tips`.* FROM `babysitter_tips` WHERE (tip_type = ‘2‘) AND (is_enable = 1) AND (is_tip = 2) ORDER BY `created_time` desc LIMIT 5
        13518 Reset stmt
        13518 Close stmt

清理mysql general log

general log会比較大,所以默认市关闭的,所以最好须要的时候打开,随手关闭。假设发现query.log过大。能够手动删除。在general log打开的情况下,query.log文件相似于mysql表的lock情况,不同意改动和删除。关闭general log就能够操作了。


以上是关于mysql general log 查看mysql 运行历史的主要内容,如果未能解决你的问题,请参考以下文章

如何查看MySQL执行的每条SQL

mysql之general log 日志

MySQL 查看执行的SQL记录

MySQL 8.0查看及启用通用日志

windows下实时动态显示查看mysql日志

MySQL | 查看log日志