mysql general log输出mysql执行历史

2023年 7月 16日 43.0k 0

1.前言

作为运维,在和开发人员调试mysql数据库故障的时候,你一定碰到过这样的需求,就是输出mysql执行的所有语句,用来分析问题。默认情况下mysql记录语句的执行只是开启了binlog日志,但是binlog不会记录select语句,这个时候就需要打开数据库的general log来记录数据库执行的所有语句了,使用方式如下。

2.开启general日志

查看general日志没有开启

MariaDB [(none)]> show variables like 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log   | OFF   |
+---------------+-------+
1 row in set (0.00 sec)

使用如下命令开启

MariaDB [(none)]> set global general_log=on;
Query OK, 0 rows affected (0.01 sec)

再次查看日志已经打开

MariaDB [(none)]> show variables like 'general_log';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log   | ON    |
+---------------+-------+
1 row in set (0.00 sec)

查看日志存放位置(目录位于datadir目录下)

MariaDB [(none)]> show variables like 'general_log_file';
+------------------+--------------+
| Variable_name    | Value        |
+------------------+--------------+
| general_log_file | c7-node2.log |
+------------------+--------------+
1 row in set (0.00 sec)

3.验证日志记录

执行一个查询数据库用户信息的语句。

MariaDB [(none)]> use mysql;
MariaDB [mysql]> select User,Host,Password from user;

查看日志记录内容:可以在文件末尾看到执行select的时间和执行的语句

[root@c7-node2 ~]# tail  /var/lib/mysql/c7-node2.log 
		    5 Field List	servers 
		    5 Field List	slow_log 
		    5 Field List	tables_priv 
		    5 Field List	time_zone 
		    5 Field List	time_zone_leap_second 
		    5 Field List	time_zone_name 
		    5 Field List	time_zone_transition 
		    5 Field List	time_zone_transition_type 
		    5 Field List	user 
161217 21:59:07	    5 Query	select User,Host,Password from user

 

 

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论