General_log 详解
1.介绍
开启 general log 将所有到达MySQL Server的SQL语句记录下来。
一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general log以供排障使用。
相关参数一共有3:
general_log、log_output、general_log_file
show variables like 'general_log'; -- 查看日志是否开启
set global general_log=on; -- 开启日志功能
show variables like 'general_log_file'; -- 看看日志文件保存位置
set global general_log_file='tmp/general.lg'; -- 设置日志文件保存位置
遇到的问题
使用如下命令后general_log文件路劲没变(已经重启服务)
show variables like '%general%';
#开启日志
SET GLOBAL general_log = 'On';
#指定日志位置
SET GLOBAL general_log_file = 'C:/msyqllog/mysql.log';
解决
如果需要永久生效,还是得修改my.cnf/my.ini文件([mysqld]后中修改:general_log = 1)如下:
#general-log=0 default value
general-log=1
然后再:
show variables like '%general%';
#开启日志
SET GLOBAL general_log = 'On';
#指定日志位置
SET GLOBAL general_log_file = 'C:/msyqllog/mysql.log';