当前位置: 代码网 > it编程>数据库>Mysql > mysql开启日志general_log的方法步骤

mysql开启日志general_log的方法步骤

2026年08月21日 Mysql 我要评论
本文详细介绍如何在mysql中开启和关闭general log,包括设置日志输出模式、查看日志信息及日志表结构。general log记录所有发送给mysql服务器的sql语句,适用于故障排查等特殊场

本文详细介绍如何在mysql中开启和关闭general log,包括设置日志输出模式、查看日志信息及日志表结构。general log记录所有发送给mysql服务器的sql语句,适用于故障排查等特殊场景。

general log会记录下发送给mysql服务器的所有sql记录,因为sql的量大,默认是不开启的。一些特殊情况(如排除故障)可能需要临时开启一下。

开启mysql的general log

mysql有三个参数用于设置general log:

  • general_log:用于开启general log。on表示开启,off表示关闭。
  • log_output:日志输出的模式。file表示输出到文件,table表示输出到mysq库的general_log表,none表示不记录general_log。
  • general_log_file:日记输出文件的路径,这是log_output=file时才会输出到此文件。

1、查看先是否开启了general log

mysql> show variables where variable_name="general_log";
+---------------+-------+
| variable_name | value |
+---------------+-------+
| general_log  | off  |
+---------------+-------+
1 row in set (0.00 sec)

2、查看日志输出模式

mysql> show variables where variable_name="log_output"; 
+---------------+-------+
| variable_name | value |
+---------------+-------+
| log_output  | file |
+---------------+-------+
1 row in set (0.00 sec)

3、查看日志输出路径

mysql> show variables where variable_name="general_log_file";
+------------------+----------------------------+
| variable_name  | value           |
+------------------+----------------------------+
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
1 row in set (0.00 sec)

4、设置日志模式为table,file双模式

mysql> set global log_output='table,file';    
query ok, 0 rows affected (0.00 sec)

5、开启general log

set global general_log=on;

6、关闭general log

大多数情况是临时开启general log,需要记得关闭,并把日志的输出模式恢复为file。

set global general_log=off;
set global log_output='file'

general_log表

现在在mysql库的general_log表就可以查看到开启general log那段时间的sql记录。

查看general_log的表结构:

mysql> show create table mysql.general_log\g
*************************** 1. row ***************************
    table: general_log
create table: create table `general_log` (
 `event_time` timestamp not null default current_timestamp on update current_timestamp,
 `user_host` mediumtext not null,
 `thread_id` int(11) not null,
 `server_id` int(10) unsigned not null,
 `command_type` varchar(64) not null,
 `argument` mediumtext not null
) engine=csv default charset=utf8 comment='general log'
1 row in set (0.00 sec)

查询得到

$select * from mysql.general_log limit 1 \g
*************************** 1. row ***************************
 event_time: 2018-01-05 17:35:45
  user_host: root[root] @ localhost []
  thread_id: 89429
  server_id: 2
command_type: query
  argument: select * from mysql.general_log
1 row in set (0.00 sec)

到此这篇关于mysql开启日志general_log的方法步骤的文章就介绍到这了,更多相关mysql开启general_log内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com