MySQL 5.6.19的general_log默认是关闭的,应该说MySQL的general_log默认是关闭的,不分具体版本和平台

一、从配置文件中启用general_log

Windows下mysql的配置文件为my.ini,所在路径之前有介绍过;linux下好像是my.cnf。

用记事本打开my.ini,找到

General and Slow logging.

log-output=NONE

general-log=0

general_log_file=”计算机名称.log”

把上面的几句都注释掉(我一般不删除系统的默认值),再重新写

log-output=FILE

general-log=1

general_log_file=”mysql.log”

这样修改完成后忘记了要不要重启mysql的服务,应该要的

这样general_log就启用了,并输出到mysql.log,这个是相对路径,目录为E:ProgramDataMySQLMySQL Server 5.6data,当然这也和你安装的路径有关

general_log_file=“”也可以设置绝对路径的,根据自己需要设置

二、使用命令设置

不修改配置文件的前提下,我是通过Workbench连接到MySQL服务器以root权限进行操作的

查看general_log是否开启

show variables like ‘general_log%’;

设置日志输出为文件

set global log_output=FILE

(备注:这个FILE忘记了要不要单引号,好像不要,但是要是table的话,下文会提到table的)

设置general log的日志文件路径

set global general_log_file=’mysql.log’

开启general log:

set global general_log=on;

其实就是配置文件里的东西,用命令修改

但这个修改,每次重启mysql服务后都需要重新设置

三、关于第二步中的table问题

“从MySQL 5.1.6版开始,general query log和slow query log开始支持写到文件或者数据库表两种方式”,这句话参考网上的,没有去找考证官方文档

放到表里直接用select查询方便多了,不用每次进系统下面找日志文件了。直接在数据库中操作就好了。尤其是使用特定权限的数据库账号远程操作数据库。

前几天就有这样的需求,我在想只有数据库账号,生成日志我要进特定的目录去查看日志文件啊,这权限还需要设啊,那台的操作系统是linux。

使用命令设置:

set global log_output=‘table’

(这一定要单引号)

set global general_log=on;

然后就可以从表里查询了

select * from mysql.general_log

我们可以看看general_log的字段类型

use mysql;

show columns in general_log;

分类: web

标签:   mysql