mysql开启general_log记录sql执行记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql开启general_log记录sql执行记录相关的知识,希望对你有一定的参考价值。

方法一:更改my.cnf配置文件

vi /usr/local/kkmail/config/mysql/my.cnf
将下面两行注释取消掉,然后重启mysql
#general_log = 1
#general_log_file = /tmp/kkmail_mysql.log

# 设置general log保存路径
# 好像只能设置保存到 /tmp 或 /var 文件夹下。



方法二:在mysql命令控制台操作

# 需要root用户才有访问此文件的权限
mysql> show global variables like '%general%';
+------------------+----------------------------------------------------+
| Variable_name    | Value                                              |
+------------------+----------------------------------------------------+
| general_log      | OFF                                                |
| general_log_file | /usr/local/kkmail/data/mysql/default/localhost.log |
+------------------+----------------------------------------------------+
2 rows in set (0.00 sec)

mysql> set global general_log_file='/tmp/kkmail_mysql.log';
Query OK, 0 rows affected (0.00 sec)

mysql> set global general_log=on;
Query OK, 0 rows affected (0.05 sec)

mysql> show global variables like '%general%';
+------------------+----------------------+
| Variable_name    | Value                |
+------------------+----------------------+
| general_log      | ON                   |
| general_log_file | /tmp/kkmail_mysql.log |
+------------------+----------------------+
2 rows in set (0.00 sec)

mysql> set global general_log=off;
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like '%general%';
+------------------+----------------------+
| Variable_name    | Value                |
+------------------+----------------------+
| general_log      | OFF                  |
| general_log_file | /tmp/kkmail_mysql.log |
+------------------+----------------------+
2 rows in set (0.00 sec)



方法三:将日志保存在mysql数据库general_log表中

mysql> set global log_output='table';
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like '%general%';
+------------------+----------------------+
| Variable_name    | Value                |
+------------------+----------------------+
| general_log      | OFF                  |
| general_log_file | /tmp/kkmail_mysql.log |
+------------------+----------------------+
2 rows in set (0.00 sec)

mysql> set global general_log=on;
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like '%general%';
+------------------+----------------------+
| Variable_name    | Value                |
+------------------+----------------------+
| general_log      | ON                   |
| general_log_file | /tmp/kkmail_mysql.log |
+------------------+----------------------+
2 rows in set (0.01 sec)

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

mysql> select * from general_log;


以上是关于mysql开启general_log记录sql执行记录的主要内容,如果未能解决你的问题,请参考以下文章

mysql开启general_log查看执行sql

mysql之general_log日志介绍

如何查看MySQL执行的每条SQL

mysql日志文件开启及详解:General_log 和 Binlog

如何动态开启mysql的慢查询日志记录

mysql开启查询日志功能