在MySQL中怎么查看日志,简单易懂保姆级教程

一、查看日志是否开启

两行SQL代码查看SQL是否开启,是开启的话,获取就好。

① show variables where Variable_name = general_log;

② show variables like general_log;

二、开启和关闭的sql

关闭的话运行以下代码开启

① set global general_log=on;

② set global general_log=off;

三、查看log文件所在位置

① show variables where Variable_name=general_log_file;

② show variables like general_log_file;

四、修改log文件所在位置

① set global general_log_file=tmp/mysql_log.log;

五、日志输出类型table或file

② show variables like log_output;

六、修改日志输出类型

① set global log_output=table;

默认是FILE的方式,执行命令,修改成TABLE方式:

② set global log_output=file; --设置为行

1️⃣、查看慢查询设置

1、show variables like "%slow%";

2️⃣、 启用慢查询(不建议使用)

1、set global slow_query_log=ON;

2、set global slow_query_log=OFF;

3️⃣、 设置成2秒,加上global,下次进mysql已然生效

1、set global long_query_time=2;

导出日志步骤:

如果需要查询2017-09-17 07:21:09到2017-09-19 07:59:50 数据库为geeRunner 的操作日志,输入如下命令将数据写入到一个备用的txt即可

例:

mysqlbinlog --no-defaults --database=geeRunner --start-datetime="2017-09-17 07:21:09" --stop-datetime="2017-09-19 07:59:50" binlogs.000080 > sanjiaomao.txt

如果本地查询,输入命令:

mysqlbinlog --no-defaults --database=geeRunner --start-datetime="2017-09-17 07:21:09" --stop-datetime="2017-09-19 07:59:50" binlogs.000080 | more

如果取下来查询,使用winscp工具,登录到db所在机器,将数据取出来。

如果需要过滤,只查询insert,update,delete的语句,可以这样写:

mysqlbinlog --no-defaults --database=raceEnroll binlogs.000078 |grep update |more

经验分享 程序员 微信小程序 职场和发展