mysql中general_log日志的实现

 更新时间:2024年11月15日 11:27:40   作者:动漫西欧  
MySQL的general_log是一个非常有用的工具,它可以记录所有的SQL语句,包括查询、DML、DDL、DCL语句,以及连接和断开数据库的语句,下面就来具体介绍一下,感兴趣的可以了解一下

介绍

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;

到此这篇关于mysql中general_log日志的实现的文章就介绍到这了,更多相关mysql general_log日志内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mysql多层子查询示例代码(收藏夹案例)

    Mysql多层子查询示例代码(收藏夹案例)

    这篇文章主要介绍了Mysql多层子查询示例代码,以收藏夹案例给大家详细介绍,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • MySQL触发器 Update触发Insert失败

    MySQL触发器 Update触发Insert失败

    这篇文章主要介绍了MySQL触发器 Update触发Insert失败 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • 删除MySQL中所有表的外键的两种方法

    删除MySQL中所有表的外键的两种方法

    这篇文章主要介绍了删除MySQL中所有表的外键的两种方法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • CentOS6.9下mysql 5.7.17安装配置方法图文教程

    CentOS6.9下mysql 5.7.17安装配置方法图文教程

    这篇文章主要为大家详细介绍了CentOS6.9下mysql 5.7.17安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • mysql下普通索引和唯一索引的效率对比

    mysql下普通索引和唯一索引的效率对比

    昨天有位同事说,他的网页查询过程中发现普通索引和唯一索引的效率是有差别的,普通索引比唯一索引快
    2010-12-12
  • 数据库Sql实现截取时间段和日期实例(SQL时间截取)

    数据库Sql实现截取时间段和日期实例(SQL时间截取)

    在许多情况下你也许只想得到日期和时间的一部分,而不是完整的日期和时间,下面这篇文章主要给大家介绍了关于数据库Sql实现截取时间段和日期(SQL时间截取)的相关资料,需要的朋友可以参考下
    2023-05-05
  • MySQL添加索引的5种方式

    MySQL添加索引的5种方式

    在MySQL中索引(Index)是数据库优化的核心机制,它像书的目录,帮助快速定位数据,而非全表扫描,本详解聚焦5种常见添加索引方式,基于官方手册与Percona基准,这些方式覆盖80%场景,需要的朋友可以参考下
    2026-03-03
  • 查一次left join没有走索引以及原因分析

    查一次left join没有走索引以及原因分析

    这篇文章主要介绍了查一次left join没有走索引以及原因分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • MySQL WITH AS创建临时表的实现

    MySQL WITH AS创建临时表的实现

    在MySQL中,我们可以通过WITH AS方法创建临时结果集,本文主要介绍了MySQL WITH AS创建临时表的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • Oracle与MySQL的区别及优缺点

    Oracle与MySQL的区别及优缺点

    这篇文章主要介绍了Oracle与MySQL的区别及优缺点,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参加一下
    2022-08-08

最新评论