MYSQL如何查看操作日志详解

MySQL是一种常用的数据库管理系统,而操作日志则是MySQL数据库中一个非常重要的部分,它可以记录MySQL数据库中的所有操作,包括增删改查等等。在MySQL数据库中,我们可以通过以下步骤来查看操作日志:

步骤一:配置MySQL操作日志

MySQL的操作日志有两种类型:二进制日志与慢查询日志。为了方便日后检索,我们通常会开启这两种日志。我们可以按照以下步骤来进行配置:

1. 二进制日志

在MySQL的配置文件my.cnf中,可以找到以下内容:

log-bin=mysql-bin 

它表示开启MySQL的二进制日志。我们可以修改为:

log-bin=mysql-bin 
expire_logs_days=7 
max_binlog_size=100M

其中,expire_logs_days=7表示MySQL的二进制日志会在7天后过期;max_binlog_size=100M表示单个二进制日志的最大大小为100MB。修改完后,我们需要重启MySQL服务使配置生效。

2. 慢查询日志

如果想要记录慢查询日志,我们可以在MySQL的配置文件my.cnf中添加以下内容:

slow_query_log = ON 
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2 

其中,slow_query_log表示开启慢查询日志;slow_query_log_file表示慢查询日志文件的存储路径;long_query_time表示查询时间超过2秒的查询会被记录到慢查询日志中。

步骤二:查看MySQL操作日志

一旦配置好MySQL的日志,我们就可以根据需要查看操作日志了。以下是两个示例:

1. 查看二进制日志

我们可以通过MySQL自带的命令行工具mysqlbinlog来查看二进制日志。以下是一个示例:

mysqlbinlog /var/lib/mysql/mysql-bin.000001

其中,/var/lib/mysql/mysql-bin.000001为二进制日志文件的路径。执行命令后,我们可以看到该二进制日志中所有的操作记录。类似如下:

#160519 10:55:56 server id 1 end_log_pos 1079 CRC32 0x50e33089    Query   thread_id=68    exec_time=0 error_code=0
SET TIMESTAMP=1463664956/*!*/;
insert into test(id,name) values(1,'Alice');
#160519 11:12:18 server id 1 end_log_pos 1190 CRC32 0x42db563f    Query   thread_id=68    exec_time=0 error_code=0
SET TIMESTAMP=1463665938/*!*/;
delete from test where id=1;

2. 查看慢查询日志

我们可以直接读取慢查询日志文件来查看其中的SQL语句。以下是一个示例:

cat /var/log/mysql/mysql-slow.log

执行命令后,我们可以看到慢查询日志文件中所有的操作记录。类似如下:

# Time: 2018-08-14T16:33:41.159777Z
# User@Host: root[root] @ localhost []  Id:    74
# Query_time: 3.220546  Lock_time: 0.000043 Rows_sent: 0  Rows_examined: 1219320
SET timestamp=1534264421;
SELECT COUNT(*) FROM orders WHERE status=1 AND uid=1;

# Time: 2018-08-14T16:25:12.300129Z
# User@Host: root[root] @ localhost []  Id:    74
# Query_time: 2.397928  Lock_time: 0.000043 Rows_sent: 0  Rows_examined: 1219320
SET timestamp=1534263912;
SELECT COUNT(*) FROM orders WHERE status=1 AND uid=1;

通过查看慢查询日志,我们可以发现哪些查询执行的比较慢,以便我们进行优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MYSQL如何查看操作日志详解 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • Java面试题解析之判断以及防止SQL注入

    Java面试题解析之判断以及防止SQL注入 1. 概述 在Java Web开发中,对于经常与数据库打交道的应用,我们不可避免地要使用数据库操作来实现数据的增删改查等功能,最常用的是使用JDBC来进行数据库操作。然而,使用JDBC进行数据库操作时,如果不对用户输入的参数进行判断和转义处理,就会存在SQL注入的攻击风险,导致数据泄露、篡改甚至是服务器崩溃等问题。…

    database 2023年5月21日
    00
  • 使用JDBC4.0操作XML类型的字段(保存获取xml数据)的方法

    操作XML类型的字段需要用到JDBC4.0以上版本的驱动和数据库系统支持XML数据类型,以下是操作XML类型字段的完整攻略: 第一步:创建XML类型字段 在创建表的时候,可以指定一个XML类型的字段,例如MySQL创建如下表: CREATE TABLE `employees` ( `id` int(11) NOT NULL AUTO_INCREMENT, `…

    database 2023年5月21日
    00
  • SQL Server 和 IBM DB2 的区别

    SQL Server 和 IBM DB2 是两种常见的关系数据库管理系统(RDBMS),它们在某些方面有相似之处,但在技术和应用上也有很多不同之处。下面将详细讲解它们的区别。 1. 介绍 SQL Server 是由微软公司开发的一种关系数据库管理系统。它是一种功能强大、易于使用的数据库,支持可扩展性和可伸缩性。SQL Server 提供了强大的安全性、容灾性…

    database 2023年3月27日
    00
  • MySql用DATE_FORMAT截取DateTime字段的日期值

    当我们在MySQL中使用DateTime字段的时候,经常需要根据自己的需求截取其中的日期值,可以使用MySQL内置函数DATE_FORMAT来实现。 使用DATE_FORMAT截取年月日我们可以使用DATE_FORMAT将DateTime字段截取为想要的年月日格式。下面是一个示例: SELECT DATE_FORMAT(‘2021-08-25 10:30:2…

    database 2023年5月22日
    00
  • 详解mysql中的存储引擎

    详解MySQL中的存储引擎 MySQL是当前最流行的数据库之一,它的存储引擎是MySQL的核心组成部分之一。下面,我们将详细讲解MySQL中的存储引擎。 什么是存储引擎? 存储引擎是MySQL中的一种存储数据的方式。在MySQL中,有多个存储引擎供用户选择,每种存储引擎有其特点和适用场景。MySQL支持的存储引擎包括MyISAM、InnoDB、Memory、…

    database 2023年5月21日
    00
  • oracle 常见等待事件及处理方法

    Oracle常见等待事件及处理方法攻略 Oracle数据库包含众多等待事件,这些等待事件代表着在SQL语句执行过程中,Oracle内部出现的各种等待所需要的时间。本攻略将会介绍常见的Oracle等待事件及其处理方法。 常见等待事件 在Oracle中,等待事件可以根据其类型进行分类。以下是一些常见的等待事件: IO和Latch类等待事件 db file seq…

    database 2023年5月21日
    00
  • 特性介绍 | MySQL 测试框架 MTR 系列教程(一):入门篇

    作者:卢文双 资深数据库内核研发 去年年底通过微信公众号【数据库内核】设定了一个目标——2023 年要写一系列 特性介绍+内核解析 的文章(现阶段还是以 MySQL 为主)。虽然关注者很少,但本着“说到就要做到”的原则,从这篇就开始了。 序言: 以前对 MySQL 测试框架 MTR 的使用,主要集中于 SQL 正确性验证。近期由于工作需要,深入了解了 MTR…

    MySQL 2023年4月16日
    00
  • oracle 日期操作语句总结

    Oracle 日期操作语句总结 本文将介绍 Oracle 数据库中常用的日期操作语句,包括日期格式化、日期计算、日期比较等内容。 日期格式化 在 Oracle 中,日期可以使用 TO_DATE 函数将字符串转换为日期格式。TO_DATE 函数的语法如下: TO_DATE(string, format) 其中,string 是表示日期的字符串,format 是…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部