通用查询日志(general query log)用来记录用户的所有操作,包括启动和关闭MySQL服务、所有用户的连接开始时间和截止时间、发送给MySQL数据库服务器的所有SQL指令等。当我们的数据发生异常时,查看通用查询日志,还原操作时的具体场景,准确定位问题。
1.查看日志状态:
show variables like '%general%';
默认情况下,通用查询日志处于关闭状态,需要手动进行启动。
2.启动日志:
方式一:永久性启动
修改my.cnf
,或者my.ini
配置文件来设置。在mysqld
组下加入log选项,并重启MySQL服务。
[mysqld]
general_log=ON
general_log_file=[path[filename]] # 日志文件所在目录,filename是日志文件名
如果不指定目录和文件名,通用查询日志将默认存储在MySQL数据目录中的hostname.log文件中,hostname表示主机名。
方式二:临时性启动
连接MySQL客户端,使用命令的方式进行启动
set global general_log=on;
set global general_log_file='path/filename';
set global general_log=off;
查看设置后的情况:
show variables like '%general%';
3.查看日志:
4.删除/刷新日志:
如果数据的使用非常频繁,那么通用查询日志会占用服务器非常大的磁盘空间。数据管理员可以删除很长时间之前的查询日志,以保证MySQL服务器上的硬盘空间。
方法一:
方法二:
# 清空通用查询日志文件
> /path/to/general.log
# 或者删除通用查询日志文件
rm /path/to/general.log
注意替换上面命令中的`/path/to/general.log`为你记录下来的通用查询日志文件路径。
生成环境推荐方法二