MySQL开启general_log并设置路径

摘要:
在本地开发的时候,有时需要临时开启MySQL的全局log,查看每条sql执行记录。以下操作直接在mysql命令行里面执行,不需重启mysql。需要用root身份执行命令。mysql˃setglobalgeneral_log=on;QueryOK,0rowsaffectedmysql˃usel5mDatabasechangedmysql˃select*fromt1;+------+------+|c1|c2|+------+------+|1|AA||2|BB||3|cc|+------+------+3rowsinsetmysql˃setglobalgeneral_log=off;QueryOK,0rowsaffected在安装数据库的datadir就会产生一个文件,不过也可以通过setglobalgeneral_log_file来指定存放的位置[root@qht131mysql]#pwd/u01/mysql[root@qht131mysql]#ls-lth|moretotal125M-rw-r-----.1mysqlmysql418Mar2322:13qht131.log-rw-r-----.1mysqlmysql48MMar2319:20ib_logfile0-rw-r-----.1mysqlmysql12MMar2319:20ibdata1qht131.log里面记录了所有的操作记录[root@qht131mysql]#catqht131.log/usr/local/mysql/bin/mysqld,Version:5.7.21-log.startedwith:Tcpport:3306Unixsocket:/u01/mysql/mysql.sockTimeIdCommandArgument2018-03-23T14:13:24.753330Z7QuerySELECTDATABASE()2018-03-23T14:13:24.753576Z7InitDBl5m2018-03-23T14:13:27.314225Z7Queryselect*fromt12018-03-23T14:13:44.534767Z7Querysetglobalgeneral_log=off这这个功能一般都不建议打开,只是偶尔需要的时候开一下。

在本地开发的时候,有时需要临时开启MySQL的全局log,查看每条sql执行记录。

以下操作直接在mysql命令行里面执行,不需重启mysql。
需要用root身份执行命令。

mysql> set global general_log=on;
Query OK, 0 rows affected (0.02 sec)
mysql> use l5m
Database changed
mysql> select * from t1;
+------+------+
| c1 | c2 |
+------+------+
| 1 | AA |
| 2 | BB |
| 3 | cc |
+------+------+
3 rows in set (0.00 sec)
mysql> set global general_log=off;
Query OK, 0 rows affected (0.00 sec)
在安装数据库的datadir就会产生一个文件,不过也可以通过set global general_log_file来指定存放的位置

[root@qht131 mysql]# pwd
/u01/mysql
[root@qht131 mysql]# ls -lth | more
total 125M
-rw-r-----. 1 mysql mysql 418 Mar 23 22:13 qht131.log
-rw-r-----. 1 mysql mysql 48M Mar 23 19:20 ib_logfile0
-rw-r-----. 1 mysql mysql 12M Mar 23 19:20 ibdata1
qht131.log里面记录了所有的操作记录

[root@qht131 mysql]# cat qht131.log
/usr/local/mysql/bin/mysqld, Version: 5.7.21-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /u01/mysql/mysql.sock
Time Id Command Argument
2018-03-23T14:13:24.753330Z 7 Query SELECT DATABASE()
2018-03-23T14:13:24.753576Z 7 Init DB l5m
2018-03-23T14:13:27.314225Z 7 Query select * from t1
2018-03-23T14:13:44.534767Z 7 Query set global
general_log=off这这个功能一般都不建议打开,只是偶尔需要的时候开一下。

另外还可以指定输出的log存放在表里面:

mysql> set global log_output='table' ;
Query OK, 0 rows affected (0.00 sec)
mysql> set global general_log=on;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from t1;
+------+------+
| c1 | c2 |
+------+------+
| 1 | AA |
| 2 | BB |
| 3 | cc |
+------+------+
3 rows in set (0.00 sec)
mysql> insert into t1 values(4,'d');
Query OK, 1 row affected (0.01 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> set global general_log=off;
Query OK, 0 rows affected (0.00 sec)
默认存储在mysql.general_log中:

mysql> use mysql
Database changed
mysql> mysql> select * from general_log;
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------+
| event_time | user_host | thread_id | server_id | command_type | argument |
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------+
| 2018-03-23 22:23:46.559752 | root[root] @ localhost [] | 7 | 10000 | Query | select * from t1 |
| 2018-03-23 22:23:54.014160 | root[root] @ localhost [] | 7 | 10000 | Query | insert into t1 values(4,'d') |
| 2018-03-23 22:23:56.135555 | root[root] @ localhost [] | 7 | 10000 | Query | commit |
| 2018-03-23 22:24:01.324716 | root[root] @ localhost [] | 7 | 10000 | Query | set global general_log=off |
+----------------------------+---------------------------+-----------+-----------+--------------+------------------------------+

————————————————
版权声明:本文为CSDN博主「zuozhiji」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jolly10/article/details/79666908

免责声明:文章转载自《MySQL开启general_log并设置路径》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇与开发团队高效协作的8个小技巧Java -native 方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL之对数据库库表的字符集的更改

数据字符集修改步骤: 对于已有的数据库想修改字符集不能直接通过 "alter database character set *"或 "alter table tablename character set *",这两个命令都没有更新已有记录的字符集,而只是对新创建的表或者记录生效。 已经有记录的字符集的调整,必须先将数据导出,经过修改字符集后重新导入后才可...

Mysql 主从复制

mysql主从复制好处:1. 如果是单个数据库,如果挂了就凉凉2.主备数据库,挂了一台主库,我可能还有很多个备用的数据库2,读和写分开,减少了数据库的压力 实验准备:主机一(主) : 192.168.11.70主机二(从): 192.168.11.224都装有Mariadb 第一步-主机的操作: 1.在matser主库上的操作,开启主库功能先关闭服务sys...

MySQL Binlog详解

MySQL Binlog详解   Mysql的binlog日志作用是用来记录mysql内部增删改查等对mysql数据库有更新的内容的记录(对数据库的改动),对数据库的查询select或show等不会被binlog日志记录;主要用于数据库的主从复制以及增量恢复。 mysql的binlog日志必须打开log-bin功能才能生存binlog日志 -rw-rw-...

关于使用navicat将mdb文件导入mysql数据库

公司最近下发了任务,要把gdb,sde,mdb格式的数据文件统一放入mysql数据库中,作为后台数据库,支持地理信息开发平台。首先来研究mdb格式的文件。.mdb格式的文件,一般都是office access来编写的,虽然2010之后,access所保存出的默认数据库的格式都是.accdb,不过不影响我们的正常使用,就把它当成.mdb文件实用就行。好了,闲...

MySQL在linux上的rpm包方式安装方法

1、下载上传mysql server和client rpm包: [root@faspdev mnt]# ls MySQL-client-5.5.53-1.el6.x86_64.rpm MySQL-server-5.5.53-1.el6.x86_64.rpm 2、安装mysql数据库: 1)安装mysql server端rpm包: [root@faspdev...

linux下搭建lamp环境以及安装swoole扩展

一、CentOS 6.5/CentOS 6.9使用yum快速搭建LAMP环境 准备工作:先更新一下yum源  我安装的环境是:apache2.2.15+mysql5.5.60+php5.6.36 输入下面命令: yum -y update 1、安装Apache [root@localhost ~]# yum -y install httpd # 开机自启动...