如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

话说碰到一个新的未知代码的时候,对系统进行分析是件非常痛苦的事情。那么今天苏南大叔带给大家的就是,如何利用mysql的sql慢查询的日志功能,对未知系统进行分析。前提是,这个系统用了mysql数据库。

导语

mysql默认情况下,是无法查看在系统运行过程中,都执行了什么sql的。有个查询当前sql的功能,不过那个稍纵即逝。根本无法捕获有用信息。(sqlserver是有这个功能的,企业管理器里面就可以查看)而我们在分析一个新的系统的时候。就需要对其所有的sql都记录下来。怎么操作呢?跟着苏南大叔做就行了。

mysql设置

命令行下面,进入mysql。输入下面的关键sql语句。就可以看到当前的相关设置。

show variables like "slow_query_log";
show variables like "log_queries_not_using_indexes";
show variables like "long_query_time";
show variables like "slow_query_log_file";

如何利用mysql的慢查询功能,对未知系统进行分析 - mysql_log_setting

我们需要开启前两个项目,然后设置『慢』sql的『慢』标准。至于,log文件的位置,我们记下设定值就好了,不必设置,后面的步骤里面,我们用的到这个log文件的路径值。

set global slow_query_log=on;
set global log_queries_not_using_indexes=on;
set global long_query_time=0;

如何利用mysql的慢查询功能,对未知系统进行分析 - mysql_log_setting-2

注意:这里的小技巧。把long_query_time设置为0,就是大于0的sql查询都认为是『慢』查询,这样的话,就记录下所有的sql了。

查看效果

运行你要分析的功能,然后查看对应的log日志就可以了。苏南大叔是在mac下面分析的piwik,所以,操作就是:触发piwik的相关功能,然后使用tail命令查看的日志输出。

注意:tail并不是mysql里面的功能,所以,这里需要再开一个终端(非mysql命令行),来执行这个命令。或者在当前mysql的命令行下面,执行exit退出即可。

tail -f /usr/local/var/mysql/localhost-slow.log

注意:log日志的路径来自最开始的第四条查询的输出。请根据你的实际情况进行替换。

如何利用mysql的慢查询功能,对未知系统进行分析 - mysql_log_setting-3

上述设置后,瞬间就得到了,piwik如何记录一条新的访问记录的所有逻辑。是不是非常简单明了?至于,苏南大叔是怎样把本地的piwik『放到』别人的网页里面的。请查看这里:https://newsn.net/say/youhou-piwik.html

结语

上述设置,是在当前操作环境下生效的。如果你重启了mysql,上述设置就消失了。对于如何固化这些设置。请点击这里查看:https://newsn.net/say/mysql-mycnf-setting.html

欢迎关注苏南大叔给大家带来的mysql系列文章,详情请点击:https://newsn.net/tag/mysql/

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。