MYSQL如何查看操作日志详解

yizhihongxing

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日

相关文章

  • Linux下修改MySQL数据库数据文件路径的步骤

    下面我将为你详细讲解如何在Linux下修改MySQL数据库数据文件路径。 1. 停止MySQL服务 在修改MySQL数据文件路径前,需要先停止MySQL服务。可以使用以下命令停止MySQL服务: sudo systemctl stop mysql 2. 复制数据文件 将原本MySQL数据文件复制到新的路径下。例如,将数据文件从 /var/lib/mysql …

    database 2023年5月18日
    00
  • Oracle 11GR2的递归WITH子查询方法

    递归WITH子查询是Oracle 11GR2版本引入的一种新特性。可以帮助我们解决很多树形数据模型的查询问题。下面是本文的详细攻略。 什么是递归WITH子查询 递归WITH子查询是一种特殊的SQL语句形式,它能够以递归的方式访问一个自引用的查询(即一个查询结果集中的某个列或几列引用了同一表中的其它行)。 递归WITH子查询通常用于查询树形结构的数据,比如组织…

    database 2023年5月21日
    00
  • SQL Server 2005 Management Studio Express企业管理器将英文变成简体中文版的实现方法

    下面是实现SQL Server 2005 Management Studio Express企业管理器变成简体中文版的攻略。 步骤一:下载语言包 首先,需要下载适用于SQL Server Management Studio Express 2005的简体中文语言包。可以从微软官网下载或者从其他可靠的下载站点下载。 步骤二:安装语言包 将语言包下载到本地后,双…

    database 2023年5月21日
    00
  • Redis如何优雅的删除特定前缀key

    Redis提供了许多API来删除key,但是如果你希望删除特定前缀的key时,使用特定的API并不太方便。在这种情况下,我们可以使用Redis提供的Lua脚本来优雅地删除这些key。 以下是删除特定前缀key的完整攻略: 步骤一:编写Lua脚本 首先,我们需要编写Lua脚本。它将接受一个参数,即需要删除的key的前缀。脚本将枚举所有匹配前缀的key并将它们都…

    database 2023年5月22日
    00
  • 中文搜索引擎数据库TngouDB 0.2 beta 发布

    中文搜索引擎数据库TngouDB 0.2 beta 发布攻略 TngouDB是一个中文搜索引擎数据库,用于搜集和存储各种中文数据信息,如中医、菜谱、笑话等。TngouDB 0.2 beta 版本发布,增加了更多的数据种类和数据量,并提升了数据的查询速度和效率。本攻略将详细介绍如何使用TngouDB,并提供两个示例说明。 下载和安装TngouDB 访问Tngo…

    database 2023年5月22日
    00
  • SQL Server 服务由于登录失败而无法启动

    当 SQL Server 服务无法启动并提示“登录失败”时,通常是由于以下原因之一: SQL Server 服务的登录凭据无效或已更改; SQL Server 服务使用的账户没有足够的权限。 为了解决这个问题,我们可以按照以下步骤进行: 检查 SQL Server 服务登录凭据是否有效:打开服务管理器,找到 MSSQLSERVER 服务(或其他 SQL Se…

    database 2023年5月21日
    00
  • Oracle递归查询简单示例

    概念与语法 Oracle递归查询即使用“WITH RECURSIVE”语句进行的递归查询。其基本语法如下所示: WITH RECURSIVE subquery_name [(column_name[, column_name]…)] AS ( initial_query UNION [ALL|DISTINCT] recursive_query ) SEL…

    database 2023年5月21日
    00
  • yii2 下的redis常用命令集合

    <?php \Yii::$app->redis->set(‘user’,’aaa’); \Yii::$app->redis->set(‘user2′,’bbb’); \Yii::$app->redis->set(‘user3′,’ccc’); \Yii::$app->redis->set(‘user4’,…

    Redis 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部