Mysql通用日志总结

简介:

1、通用日志概念及作用

通用日志会记录mysql的所有操作,包含查询操作,方便开发人员与数据库人员跟踪数据执行过程。

Mysql相关的参数:

log_output=[none|file|table|file,table]      #通用查询日志输出格式

general_log=[on|off]                     #是否启用通用查询日志

general_log_file[=filename]                #通用查询日志位置及名字

注:filetable的区别,file会记录在文件中,而table是记录在mysql.general_log表中。

2、如何开启(使用file输出格式)

2.1、通用日志默认是不开启,查看方法

1
2
mysql>  select  version();+ ------------+| version()  |+------------+| 5.7.16-log |+------------+1 row in set (0.00 sec) 
mysql> show variables  like  "%general%" ;+ ------------------+---------------------------+| Variable_name    | Value                     |+------------------+---------------------------+| general_log      | OFF                       || general_log_file | /var/lib/mysql/aboss5.log |+------------------+---------------------------+2 rows in set (0.00 sec)

2.2、临时设置(不需要重启)

1
2
3
mysql>  set  global  log_output=file;Query OK, 0  rows  affected (0.00 sec) 
mysql>  set  global  general_log_file= '/var/lib/mysql/mysql_general.log' ;Query OK, 0  rows  affected (0.00 sec) 
mysql>  set  global  general_log= on ;Query OK, 0  rows  affected (0.01 sec)

使用完记得关闭,要不然会影响mysql性能

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

2.3、永久设置(需要重启机器)

1
2
3
4
vim /etc/my.cnf 
    log_output=file
    general_log= on
    general_log_file=/var/lib/mysql/mysql-general.log

 

3、如何开启(使用table或同时开启tablefile两者输出格式)

3.1、临时改成table输出格式

注:永久操作,就是在Mysqlmy.cnf配置就可以了,这里就不操作。

1
2
3
4
mysql>  set  global  general_log= on ;Query OK, 0  rows  affected (0.00 sec) 
mysql> show variables  like  'log_output' ;+ ---------------+-------+| Variable_name | Value |+---------------+-------+| log_output    | FILE  |+---------------+-------+1 row in set (0.00 sec) 
mysql>  set  global  log_output= 'TABLE' ;Query OK, 0  rows  affected (0.00 sec) 
mysql>  select  from  mysql.slow_log;Empty  set  (0.00 sec)

查看结果

1
mysql>  select  thread_id,command_type,argument,event_time  from  mysql.general_log;+ -----------+--------------+--------------------------------------------------------------------------+----------------------------+| thread_id | command_type | argument                                                                 | event_time                 |+-----------+--------------+--------------------------------------------------------------------------+----------------------------+|       136 | Query        | select * from mysql.slow_log                                             | 2016-11-25 17:17:44.237846 ||       136 | Query        | desc mysql.general_log                                                   | 2016-11-25 17:19:05.909411 ||       136 | Query        | select thread_id,command_type,argument,event_time from mysql.general_log | 2016-11-25 17:19:50.188954 |+-----------+--------------+--------------------------------------------------------------------------+----------------------------+3 rows in set (0.00 sec)

3.2、同时开启FILE,TABLE 两者输出格式

1
2
3
4
mysql>  set  global  log_output= 'file,table' ;Query OK, 0  rows  affected (0.00 sec) 
mysql>  select  @@ global .log_output;+ ---------------------+| @@global.log_output |+---------------------+| FILE,TABLE          |+---------------------+1 row in set (0.00 sec) 
mysql>  select  thread_id,command_type,argument,event_time  from  mysql.general_log;+ -----------+--------------+--------------------------------------------------------------------------+----------------------------+| thread_id | command_type | argument                                                                 | event_time                 |+-----------+--------------+--------------------------------------------------------------------------+----------------------------+|       136 | Query        | select * from mysql.slow_log                                             | 2016-11-25 17:17:44.237846 ||       136 | Query        | desc mysql.general_log                                                   | 2016-11-25 17:19:05.909411 ||       136 | Query        | select thread_id,command_type,argument,event_time from mysql.general_log | 2016-11-25 17:19:50.188954 ||       136 | Query        | show variables like 'log_output'                                         | 2016-11-25 17:23:21.393370 ||       136 | Query        | set global log_output='file,table'                                       | 2016-11-25 17:23:41.443710 ||       136 | Query        | select @@global.log_output                                               | 2016-11-25 17:23:54.132140 ||       136 | Query        | select thread_id,command_type,argument,event_time from mysql.general_log | 2016-11-25 17:24:08.725540 |+-----------+--------------+--------------------------------------------------------------------------+----------------------------+7 rows in set (0.00 sec) 
mysql>  commit ;Query OK, 0  rows  affected (0.00 sec)

日志文件查看

1
2
mysql> system tail /var/lib/mysql/mysql_general.log
  /usr/sbin/mysqld, Version: 5.7.16-log (MySQL Community Server (GPL)). started  with :Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sockTime                 Id Command    Argument2016-11-25T09:17:12.234377Z     136 Query  show variables  like  'log_output' 2016-11-25T09:17:32.614030Z     136 Query   set  global  log_output= 'TABLE' 2016-11-25T09:23:54.132140Z     136 Query   select  @@ global .log_output2016-11-25T09:24:08.725540Z     136 Query   select  thread_id,command_type,argument,event_time  from  mysql.general_log2016-11-25T09:24:15.510491Z     136 Query   commit

查看mysql.general_log

1
mysql>  select  thread_id,command_type,argument,event_time  from  mysql.general_log;+ -----------+--------------+--------------------------------------------------------------------------+----------------------------+| thread_id | command_type | argument                                                                 | event_time                 |+-----------+--------------+--------------------------------------------------------------------------+----------------------------+|       136 | Query        | select * from mysql.slow_log                                             | 2016-11-25 17:17:44.237846 ||       136 | Query        | desc mysql.general_log                                                   | 2016-11-25 17:19:05.909411 ||       136 | Query        | select thread_id,command_type,argument,event_time from mysql.general_log | 2016-11-25 17:19:50.188954 ||       136 | Query        | show variables like 'log_output'                                         | 2016-11-25 17:23:21.393370 ||       136 | Query        | set global log_output='file,table'                                       | 2016-11-25 17:23:41.443710 ||       136 | Query        | select @@global.log_output                                               | 2016-11-25 17:23:54.132140 ||       136 | Query        | select thread_id,command_type,argument,event_time from mysql.general_log | 2016-11-25 17:24:08.725540 ||       136 | Query        | commit                                                                   | 2016-11-25 17:24:15.510491 ||       136 | Query        | select thread_id,command_type,argument,event_time from mysql.general_log | 2016-11-25 17:25:11.699651 |+-----------+--------------+--------------------------------------------------------------------------+----------------------------+9       rows in set (0.00 sec)

 

4、关于设置一些小结论

1)当log_output设置为 TABLEFILE或两者都设置,而general_log=off时,sql操作不会记录记录在通用日志中。

2)当log_output设置为NONEgeneral_log=on时,sql操作也不会被记录在通用日志中。



本文转自 corasql 51CTO博客,原文链接:http://blog.51cto.com/corasql/1905350,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
3月前
|
SQL 运维 关系型数据库
深入探讨MySQL的二进制日志(binlog)选项
总结而言,对MySQL binlogs深度理解并妥善配置对数据库运维管理至关重要;它不仅关系到系统性能优化也是实现高可靠性架构设计必须考虑因素之一。通过精心规划与周密部署可以使得该机能充分发挥作用而避免潜在风险带来影响。
140 6
|
7月前
|
SQL 监控 关系型数据库
MySQL日志分析:binlog、redolog、undolog三大日志的深度探讨。
数据库管理其实和写小说一样,需要规划,需要修订,也需要有能力回滚。理解这些日志的作用与优化,就像把握写作工具的使用与运用,为我们的数据库保驾护航。
319 23
|
8月前
|
SQL 运维 关系型数据库
MySQL Binlog 日志查看方法及查看内容解析
本文介绍了 MySQL 的 Binlog(二进制日志)功能及其使用方法。Binlog 记录了数据库的所有数据变更操作,如 INSERT、UPDATE 和 DELETE,对数据恢复、主从复制和审计至关重要。文章详细说明了如何开启 Binlog 功能、查看当前日志文件及内容,并解析了常见的事件类型,包括 Format_desc、Query、Table_map、Write_rows、Update_rows 和 Delete_rows 等,帮助用户掌握数据库变化历史,提升维护和排障能力。
|
9月前
|
存储 SQL 关系型数据库
mysql的undo log、redo log、bin log、buffer pool
MySQL的undo log、redo log、bin log和buffer pool是确保数据库高效、安全和可靠运行的关键组件。理解这些组件的工作原理和作用,对于优化数据库性能和保障数据安全具有重要意义。通过适当的配置和优化,可以显著提升MySQL的运行效率和数据可靠性。
222 16
|
9月前
|
存储 SQL 关系型数据库
mysql的undo log、redo log、bin log、buffer pool
MySQL的undo log、redo log、bin log和buffer pool是确保数据库高效、安全和可靠运行的关键组件。理解这些组件的工作原理和作用,对于优化数据库性能和保障数据安全具有重要意义。通过适当的配置和优化,可以显著提升MySQL的运行效率和数据可靠性。
196 4
|
9月前
|
SQL 存储 关系型数据库
简单聊聊MySQL的三大日志(Redo Log、Binlog和Undo Log)各有什么区别
在MySQL数据库管理中,理解Redo Log(重做日志)、Binlog(二进制日志)和Undo Log(回滚日志)至关重要。Redo Log确保数据持久性和崩溃恢复;Binlog用于主从复制和数据恢复,记录逻辑操作;Undo Log支持事务的原子性和隔离性,实现回滚与MVCC。三者协同工作,保障事务ACID特性。文章还详细解析了日志写入流程及可能的异常情况,帮助深入理解数据库日志机制。
1141 0
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
165 3
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
803 152
|
3月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。

推荐镜像

更多