mysql中general_log日志详解

介绍

1.记录范围:这个log里面会记录MySQL所有的SQL语句,不管是查询语句,还是DML语句,还是DDL语句,还是DCL语句,这些语句统统都会被记录在general log文件中。就连我们连接和断开MySQL数据库的这些语句。

2.记录顺序:MySQL会把它收到的所有SQL语句按照接收的顺序依次记录在general log中。我们需要注意的是,这里接受的SQL语句的顺序,并不等于SQL语句就是按照这个接受的顺序来执行,因为有的时候,一些SQL可能需要等待其他锁被释放后才会被真正的执行,SQL语句的执行顺序是和binlog中的顺序是相匹配的。

3.影响:默认不开启。开启后日志将会非常大,对磁盘是一个很大的压力。对MySQL数据的性能有一定的影响。

操作命令(重启mysql失效)

1.查看日志是否开启: show variables like 'general_log';

2.开启日志功能: set global general_log=on;

3.关闭日志功能:set global general_log=off;

4.日志文件保存位置: show variables like 'general_log_file';

5.设置日志文件保存位置: set global general_log_file='/var/log/mysql/general_query_log';

6.看看日志输出类型 table或file: show variables like 'log_output';

7.设置输出类型为table(专用日志表中,要比记录到文件耗费更多的系统资源,写入到mysql.general_log 表,这个参数是和慢查询日志是共用的): set global log_output='table';

8.设置输出类型为file: set global log_output='file';

9.设置输出类型同时支持两种日志存储方式: set global log_output='file,table';

配置文件修改(重启生效)

1.开启日志功能: 修改需要在/etc/my.cnf的:general_log = 1(0表示关闭,等于1表示开启)

2.设置日志文件保存位置:修改需要在/etc/my.cnf的:general_log_file = /var/log/mysql/general_query_log/

3.设置输出类型为file(专用日志表中,要比记录到文件耗费更多的系统资源,写入到mysql.general_log 表,这个参数是和慢查询日志是共用的):修改需要在/etc/my.cnf的log_output = file

4.重启mysql:service mysqld restart

清理general log 文件

1.文件

(1)备份:cp general_query_log general_query_log.bak

(2)清理(切记不要直接删除这个日志文件,否则这个文件不会自动生成,误删后需要重启mysql): echo "" > general_query_log

2.表

(1)备份:create table mysql.general_log_bak as select * from mysql.general_log;

(2)清空:truncate table mysql.general_log;

相关推荐
风向决定发型丶7 小时前
redis集群搭建
数据库·redis·缓存
wei_shuo9 小时前
KES 扩展与插件开发实战:自定义函数、触发器与第三方插件集成
数据库·kes
风中芦苇啊10 小时前
从直接生成到受控配置:新一代图表Agent的SQL安全生成范式
数据库·sql·安全
帅次10 小时前
Android 高级工程师面试:Java 基础知识 近1年高频追问 22 题
android·java·面试
吴声子夜歌10 小时前
SQL进阶——窗口函数
数据库·sql
周杰伦的稻香10 小时前
MySQL8.0+中引入的SET_USER_ID权限迭代SUPER权限指定 DEFINER
数据库·mysql
动恰客流统计10 小时前
客流统计如何结合AI分析?从传统计数到智能决策的技术升级路径
数据库·人工智能·边缘计算
私人珍藏库11 小时前
[Android] zip解压缩管理-全格式压缩包一键解压+打包
android·app·生活·工具·多功能
宠友信息11 小时前
多端数据互通场景下Spring Boot仿小红书源码结构设计
数据库·spring boot·redis·缓存·架构
风曦Kisaki11 小时前
#Linux数据库管理Day06:主从同步与MaxScale读写分离
linux·运维·数据库