mysql日志文件的使用

合集下载

MySQL中的日志文件和错误日志处理

MySQL中的日志文件和错误日志处理

MySQL中的日志文件和错误日志处理在数据库管理系统中,日志文件和错误日志是非常重要的组成部分。

它们记录了数据库的操作和出现的错误,提供了故障排除和性能优化的重要依据。

本文将讨论MySQL中的日志文件和错误日志处理的相关知识。

一、日志文件的作用日志文件是用于记录数据库操作过程中的各种事件和状态变化的文件。

它可以帮助我们了解数据库的运行情况、追踪问题、恢复数据和评估性能。

MySQL中常见的日志文件包括二进制日志、错误日志、查询日志和慢查询日志等。

1. 二进制日志(Binary Log)二进制日志是MySQL中最重要的日志文件之一。

它记录了所有对数据库进行修改的事件,包括数据库的创建和删除、表的结构和数据的增删改等。

二进制日志的作用主要有两个方面:一是用于数据的增量备份和恢复,二是用于数据库的主从复制。

对于数据备份和恢复,二进制日志记录了数据库的所有修改操作,我们可以通过还原所有操作来达到恢复数据的目的。

而对于主从复制,二进制日志记录了主服务器上所有的修改操作,并通过网络将这些操作传输到从服务器上执行,从而保持主从数据库的一致性。

2. 错误日志(Error Log)错误日志记录了MySQL服务器在运行过程中发生的错误和警告信息。

它可以帮助我们快速发现和排除问题,提高系统的稳定性和可靠性。

错误日志中包含了关键的错误信息,如数据库连接失败、语法错误、整数溢出等,以及警告信息,如磁盘空间不足、线程死锁等。

对于错误日志的处理,通常情况下我们可以通过查看错误日志来定位和解决问题。

对于一些警告信息,我们可以根据需要采取相应的措施,如增加磁盘空间、优化查询语句等。

3. 查询日志(General Log)查询日志记录了所有的SQL语句和执行结果,它可以帮助我们了解数据库每一步的操作过程,包括查询语句、更新语句和事务等。

查询日志的作用主要是用于调试和性能优化。

通过查看查询日志,我们可以了解到哪些查询是频繁执行的,哪些查询需要优化,从而提高数据库的性能。

MySQL更新数据时日志(redologbinlog)执行流程

MySQL更新数据时日志(redologbinlog)执行流程

MySQL更新数据时日志(redologbinlog)执行流程1. Redo Log(重做日志):Redo Log是MySQL的InnoDB存储引擎特有的日志,用于保证数据库的事务持久性和故障恢复。

当有数据更新操作时,MySQL会将对应的数据变更操作记录到redo log中,然后再将数据变更写入到磁盘中。

这样可以确保在数据库宕机或者崩溃时,可以通过redo log来恢复未完成的事务,并重新执行数据变更操作。

Redo Log的执行流程如下:- 当有数据更新操作时,MySQL首先将数据变更操作记录到redo log 的内存缓冲区(称为Log Buffer)中,然后再刷写到磁盘的redo log文件中。

- 在日志缓冲区中的redo log会定期刷新到磁盘中,或者在事务提交时进行刷新,这个过程称为日志的同步(Log Flush)。

-日志刷新到磁盘后,MySQL会更新对应的数据页,并将数据变更持久化到磁盘上。

Redo Log的几个重要参数:- innodb_log_file_size:设置redo log文件的大小,默认值为48M,和innodb_log_files_in_group(设置redo log文件组的个数,默认值为2)一起决定了整个redo log的容量。

- innodb_log_buffer_size:设置redo log的缓冲区大小,默认值为8M,用于存储待写入到磁盘上redo log的数据。

2. Binlog(二进制日志):Binlog是MySQL的服务器层产生的日志,用于记录数据库的所有修改操作,包括数据的增删改以及DDL语句(数据定义语言,例如创建表、修改表结构等)。

Binlog以二进制形式保存在磁盘上,可以被用于数据恢复、数据复制和数据分析等。

Binlog的执行流程如下:- 当有数据修改操作时,MySQL会将对应的数据修改操作记录到binlog中,然后将binlog写入到指定的binlog文件中。

如何使用MySQL进行日志管理和审计

如何使用MySQL进行日志管理和审计

如何使用MySQL进行日志管理和审计引言:日志管理和审计是任何一个数据库管理系统中的关键组成部分。

MySQL作为一种广泛使用的关系型数据库管理系统,具备了强大的日志管理和审计功能。

本文将介绍如何使用MySQL进行日志管理和审计,并探讨其在保护数据安全和维护系统稳定性方面的重要作用。

一、日志管理的重要性1.1 什么是日志日志是数据库管理系统中记录各种重要事件和操作的一种记录形式。

在MySQL中,日志分为多种类型,包括二进制日志、错误日志、查询日志、慢查询日志等。

通过对这些日志的记录和分析,可以及时发现和解决数据库中的问题,对系统运行情况进行监控和调试。

1.2 日志管理的作用日志管理对于数据库管理系统来说具有重要意义。

其作用主要体现在以下几个方面:(1)问题排查和故障恢复:通过记录数据库的各种操作和事件,可以快速定位问题并进行故障恢复。

(2)性能优化:通过分析日志中的SQL语句和执行计划,可以找出影响性能的瓶颈,并进行相应优化。

(3)安全审计:可以对数据库的访问和操作进行审计和监控,加强数据安全保护。

(4)业务分析:通过分析日志中的用户访问情况和操作行为,可以为业务决策提供参考依据。

二、MySQL的日志类型及配置2.1 二进制日志(Binary Log)二进制日志记录了所有对数据库的更改操作,包括增删改操作和数据表结构的修改。

通过开启二进制日志,可以实现数据的增量备份和复制。

2.2 错误日志(Error Log)错误日志是MySQL记录各种错误和异常信息的地方,通过查看错误日志可以了解数据库中出现的各种错误情况和异常事件。

2.3 查询日志(General Query Log)查询日志记录了所有的查询操作语句,包括SELECT、INSERT、UPDATE、DELETE等操作。

通过开启查询日志,可以查看数据库中执行的所有SQL语句,方便进行性能分析和问题排查。

2.4 慢查询日志(Slow Query Log)慢查询日志是一种特殊的查询日志,只记录执行时间超过设置阈值的查询语句。

如何使用MySQL进行日志管理与审计

如何使用MySQL进行日志管理与审计

如何使用MySQL进行日志管理与审计1. 引言MySQL 是一个广泛使用的关系型数据库管理系统,它提供了强大的功能和灵活的配置选项。

而日志管理和审计是数据库管理中至关重要的一部分,它可以保护数据库的安全性和完整性。

本文将介绍如何使用MySQL进行日志管理与审计,包括日志类型、配置选项和常见的审计策略。

2. MySQL 日志类型MySQL 提供了多种类型的日志,主要分为以下几种:- 错误日志(Error Log):记录MySQL服务器运行过程中的错误信息和警告。

- 查询日志(Query Log):记录所有执行的查询语句,可以用于排查问题和性能优化。

- 二进制日志(Binary Log):记录所有修改数据库的操作,包括插入、更新和删除等。

用于数据恢复和复制。

- 慢查询日志(Slow Query Log):记录执行时间超过阈值的查询语句,用于性能优化。

3. 配置 MySQL 日志为了启用和配置 MySQL 日志,需要修改 MySQL 配置文件 f。

以下是常用的配置选项及其含义:- log_error:指定错误日志文件的路径和文件名。

- general_log:启用或禁用查询日志。

可以设置为 ON、OFF 或 FILE,如果设置为 FILE,则指定保存查询日志文件的路径和文件名。

- log_bin:启用或禁用二进制日志。

- slow_query_log:启用或禁用慢查询日志。

- long_query_time:指定慢查询的执行时间阈值。

4. 日志管理日志管理是保证数据库安全性和完整性的重要一环。

以下是一些常见的日志管理策略:- 定期检查错误日志,及时处理其中的错误和警告信息。

可以通过监控工具实时检测错误日志并发送警报。

- 分析查询日志,查找潜在的性能问题和异常操作。

可以使用工具对查询日志进行分析和统计,识别出频繁执行的查询和耗时较长的查询。

- 定期备份和存档二进制日志,确保数据的可恢复性。

二进制日志可以作为数据库的增量备份,也可以用于数据库的复制和高可用性配置。

MySql的操作日志历史记录

MySql的操作日志历史记录

MySql的操作⽇志历史记录如何查看mysql数据库操作记录⽇志1、⾸先确认你⽇志是否启⽤了mysql>show variables like 'log_bin'。

2、如果启⽤了,即ON,那⽇志⽂件就在mysql的安装⽬录的data⽬录下。

3、怎样知道当前的⽇志mysql> show master status。

4、看⽇志⽂件⽤mysqlbinlog,shell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlog mail-bin.000001 | tail,Windows 下⽤类似的。

MySQL的⽇志操作:1、⾸先,登陆mysql后,执⾏:show variables like 'log_bin'。

2、#错误⽇志log-errol开启⽅式:在my.ini的[mysqld]选项下:添加代码:log-error=E:\log-error.txt。

记录内容:主要是记录启动、运⾏或停⽌mysqld时出现的致命性问题,都是系统级的错误记录。

3、#查询⽇志:log,开启⽅式:在my.ini的[mysqld]选项下:添加代码:log=E:/mysql_log.txt。

4、#⽇志:log-bin,开启⽅式:在my.ini的[mysqld]选项下:添加代码:log-bin=E:/mysql_log_bin,记录内容:主要是记录所有的更改数据的语句,可使⽤mysqlbinlog命令恢复数据。

mysql查看历史执⾏的sql转载2015年08⽉31⽇ 18:23:11标签:15983查看mysql的语句,⽐较常⽤的⼤概是show processlist 命令了,但是这个对于查询时间⽐较长的语句⽐较有意义,对于⼀下⼦就能执⾏的语句真⼼拼不过⼿速啊.于是就只能从mysql的历史记录⾥⾯着⼿了.为了实现这个⽬的,我们需要修改/etc/f⽂件.在f中的[mysqld](其他地⽅可能⽆效)下插⼊log=/etc/tmp/mysql.log(⽇志的地址可以⾃⼰定义,不过不要在home⾥⾯,否则可能显⽰不出来,主要要有写的权限).然后要重启数据库,⽤service mysqld restart命令就可以了.这个log会将所有的执⾏语句记录下来,所以在数据库很忙的时候,这个⽇志可能变得很⼤,不宜查看.⽤tail -f /etc/tmp/mysql.log 命令可以持续观察执⾏语句,也可以将该⽂件下载下来慢慢看.=========================================另外还有⼀个慢查询历史记录,也在f⽂件⾥,配置语句为1234 log-slow-queries=/var/lib/mysql/slowquery.log long_query_time=5 log-queries-not-using-indexes其中log-slow-queries是慢查询历史记录的地址,long_query_time限定超过X秒才能加⼊到历史记录⾥⾯,log-queries-not-using-indexes限定没有使⽤索引的查询语句.这个⽇志由于记录语句不多,所以可以长期开启.MySQL的⽇志操作在MySQL的初期,需要熟练掌握sql语句的运⽤,最简单的⽅式就是多练习多运⽤,但是好需要有⼀定的⽬的性,什么意思呢?就是每个⼈的习惯不⼀样,可能容易犯的错误也不同,所以需要总结⾃⼰的常犯错误,有针对性的弥补,这样就会对MySQL的学习和掌握起到事半功倍的效果。

如何使用MySQL进行数据追踪和调试

如何使用MySQL进行数据追踪和调试

如何使用MySQL进行数据追踪和调试MySQL是一种流行的开源关系型数据库管理系统,广泛应用于各种网站和应用程序中。

在开发过程中,经常需要对MySQL进行数据追踪和调试,以排查问题、优化性能或者了解系统运行情况。

本文将分享如何使用MySQL进行数据追踪和调试的一些技巧和工具。

一、日志文件MySQL的日志文件是进行数据追踪和调试的重要工具之一。

MySQL提供了多种日志文件,分别记录了不同的信息。

具体如下:1. 错误日志(error log): 记录MySQL服务器发生的错误、警告等信息。

可以通过修改f配置文件来指定错误日志的位置和命名方式。

2. 查询日志(general log): 记录所有进入MySQL服务器的查询语句。

一般情况下,查询日志不会一直记录,可以通过设置log_output参数来决定是否开启查询日志,并通过设置general_log参数来指定查询日志的位置和命名方式。

3. 慢查询日志(slow query log): 记录执行时间超过指定阈值的查询语句。

可以通过设置long_query_time参数来指定慢查询的阈值,并通过设置slow_query_log 参数来指定慢查询日志的位置和命名方式。

慢查询日志对于优化数据库性能非常有帮助。

4. 二进制日志(binary log): 记录对数据库的更新操作。

二进制日志可以用于数据恢复、数据同步以及故障排查等。

可以通过设置log_bin参数来开启二进制日志,并通过设置binlog_format参数来选择二进制日志的格式。

以上是MySQL的几种常见日志文件,可以根据实际需求选择开启或关闭。

通过查看日志文件可以获取关键的数据追踪和调试信息。

二、EXPLAIN语句在进行数据追踪和调试时,经常需要分析查询语句的执行计划,确定数据库是如何处理查询语句的。

MySQL提供了EXPLAIN语句,可以用于分析查询语句的执行计划。

EXPLAIN语句的基本语法如下:EXPLAIN SELECT * FROM table_name WHERE condition;执行EXPLAIN语句后,MySQL会返回一张执行计划表,该表包含了查询语句的执行过程中涉及的表、使用的索引、查询的类型、扫描行数等信息。

MySQL中的查询日志与错误日志使用指南

MySQL中的查询日志与错误日志使用指南

MySQL中的查询日志与错误日志使用指南MySQL是一种流行的关系型数据库管理系统,广泛应用于各种应用程序中。

在使用MySQL进行开发和维护过程中,查询日志和错误日志是非常重要的工具,可以帮助我们监测和解决问题。

本文将详细介绍如何使用MySQL中的查询日志和错误日志,并提供一些实用的技巧和建议。

一、查询日志查询日志是MySQL中的一种记录工具,它会记录所有对数据库的查询操作。

使用查询日志可以帮助我们分析数据库的性能瓶颈以及定位问题。

下面是一些使用查询日志的基本步骤:1. 启用查询日志要启用查询日志,我们需要修改MySQL配置文件。

找到f或my.ini文件,并添加以下配置:```log_output = FILEgeneral_log_file = /path/to/query.loggeneral_log = 1```log_output设置为FILE表示将查询日志输出到文件中,general_log_file指定了查询日志文件的路径和名称,general_log设置为1表示启用查询日志。

2. 重启MySQL服务在修改完配置文件后,需要重启MySQL服务使修改生效。

可以使用以下命令重启MySQL服务:```sudo service mysql restart```3. 查看查询日志重启MySQL服务后,查询日志将开始记录所有的查询操作。

你可以通过以下命令查看查询日志:```tail -f /path/to/query.log```这个命令可以实时监测查询日志文件的变化,并将新的记录输出到终端。

4. 分析查询日志查询日志记录了所有的查询操作,包括查询语句、执行时间、返回结果等信息。

通过分析这些信息,我们可以找到慢查询和问题查询,并进行优化和修复。

下面是一些常用的查询日志分析技巧:- 慢查询分析:通过查找执行时间较长的查询语句,我们可以发现潜在的性能问题。

可以使用工具如pt-query-digest来分析慢查询日志并生成报告。

怎样使用MySQL实现日志记录和审计

怎样使用MySQL实现日志记录和审计

怎样使用MySQL实现日志记录和审计MySQL是一种常用的数据库管理系统,它提供了丰富的功能和工具来管理和操作数据库。

其中一个重要的功能就是日志记录和审计。

本文将介绍如何使用MySQL实现日志记录和审计,并探讨其在数据库管理中的重要性和应用。

一、日志记录的重要性日志记录是一种将数据库操作记录下来的重要技术手段。

通过记录数据库的操作,可以跟踪和监控数据库的使用情况,确保数据库的安全和稳定运行。

同时,日志记录也是解决数据库故障和数据丢失的重要保障。

二、MySQL的日志类型MySQL提供了多种日志类型,包括二进制日志、错误日志、查询日志和慢查询日志等。

每种日志类型都有不同的功能和应用场景。

1. 二进制日志二进制日志是MySQL中最重要的日志类型之一。

它记录了所有对数据库的更新操作,包括INSERT、UPDATE和DELETE等。

通过分析二进制日志,可以对数据库进行数据恢复和复制,保证数据库的一致性和可用性。

2. 错误日志错误日志记录了MySQL数据库在运行过程中发生的错误和异常信息。

通过查看错误日志,可以快速定位和解决数据库的问题,提高数据库的可靠性和稳定性。

3. 查询日志查询日志记录了所有执行的查询语句,包括SELECT、SHOW和DESCRIBE 等。

通过查看查询日志,可以分析数据库的使用情况和优化查询效率,提高数据库的性能和响应速度。

4. 慢查询日志慢查询日志记录了执行时间超过指定阈值的查询语句。

通过分析慢查询日志,可以找到执行效率低下的查询语句,并进行优化,提高数据库的性能和响应速度。

三、日志记录的配置和管理在使用MySQL进行日志记录之前,需要进行相应的配置和管理,以满足实际需求。

以下是一些常用的配置和管理方法:1. 启用和禁用日志通过设置MySQL配置文件中的相应参数,可以启用和禁用不同类型的日志。

例如,通过设置"log-bin"参数可以启用二进制日志,在"mysqld"节中设置"log_error"参数可以启用错误日志。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

mysql日志文件的使用、数据恢复一、 mysql日志类型MYSQL有不同类型的日志文件(各自存储了不同类型的日志),从它们当中可以查询到MYSQL里都做了些什么,对于MYSQL的管理工作,这些日志文件是不可缺少的。

1. 错误日志(The error log):记录了数据库启动、运行以及停止过程中错误信息;2. ISAM操作日志(The isam log):记录了所有对ISAM表的修改,该日志仅仅用于调试ISAM模式;3. SQL执行日志(The query log):记录了客户端的连接以及所执行的SQL语句;4. 更新日志(The update log):记录了改变数据的语句,已经不建议使用,由二进制日志替代;5. 二进制日志(The binary log):记录了所有对数据库数据的修改语句;6. 超时日志(The slow log):记录所有执行时间超过最大SQL执行时间(long_query_time)或未使用索引的语句;7. relay log:如果你是在用mysql的复制、备份功能,那么从服务器还提供了一种叫做relay log的日志文件。

默认情况下所有日志文件会记录在MYSQL的数据目录下,你可以通过强制mysql去关闭并重新打开一个文件进行日志记录,当然系统会自动加后缀 (如.00001, .00002),方式有在mysql环境下执行语句 mysql>flush logs; 或者通过mysqladmin管理程序执行#mysqladmin flush-logs 或 #mysqladmin refresh二、 mysql日志的配置这些日志的启动方式可以在mysqld_safe方式启动数据库的时候,后面跟选项参数,也可以在配置文件里配置配置文件配置[mysqld]log=/var/log/mysqld_common.loglog-error=/var/log/mysqld_err.loglog-bin=/var/log/mysqld_bin.bin参数配置:在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql 服务就行了。

#Enter a name for the slow query log file. Otherwise a default name will be used. 慢查询日志#log-slow-queries=#Enter a name for the binary log. Otherwise a default name will be used.log-bin=#Enter a name for the query log file. Otherwise a default name will be used.#log=#Enter a name for the error log file. Otherwise a default name will be used.log-error=#Enter a name for the update log file. Otherwise a default name will be used.#log-update=三、 mysql日志的查看日志的查看很简单,大部分都是文本,直接用vim、less、more之类的工具看就可以了,值得说明的是二进制文件的查看:1. 首先确定是否开启了二进制文件记录功能Sql代码 mysql>show variables like 'log_bin';上面只开启了错误日志,要开其他的日志就把前面的“#”去掉(参数)查看命令:①show variables like 'log_%';查看所有的log命令②show variables like 'log_bin';查看具体的log命令2. 如果你想知道现在记录二进制数据的文件具体信息,你可以通过下列语句看到现在正在记录哪个文件,以及记录的当前位置:Sql代码 mysql>show master status;3. 查看二进制数据需要借助程序mysqlbinlog,看看它支持哪些选项,根据自己需要来使用。

Sql代码 mysql>mysqlbinlog /var/log/mysql/mysql-bin.000040;4. 将二进制日志文件导出txt文本文件查看Sql代码mysql>mysqlbinlog /var/log/mysql/mysql-bin.000040 >/var/log/mysql/000040.txt;5. 查询某个时间范围的可以执行下列语句,如果记录很多可以将结果定向到一个文件里自己慢慢看:-) :Sql代码mysql>mysqlbinlog --start-datetime='2008-01-01 00:00:00'--stop-datetime='2008-08-0800:00:00' /var/log/mysql/mysql-bin.000040 > ./tmp.log四、使用二进制日志恢复数据mysqlbinlog工具的使用,大家可以看MySQL的帮助手册,里面有详细的用。

在这个例子中,重点是--start-position参数和--stop-position参数的使用。

--start-position=N :从二进制日志中位置等于N参量时的事件开始读。

--stop-position=N:从二进制日志中位置等于和大于N参量时的事件起停止读。

1. 创建实验环境在一测试数据库里,创建一个表,并添加记录,然后产生日志文件。

Sql代码mysql> create table test(id int auto_increment not null primary key,val int,data varchar(20));mysql> insert into test(val,data) values(10,'liang');Query OK, 1 row affected (0.03 sec)mysql> insert into test(val,data) values(20,'jia');Query OK, 1 row affected (0.08 sec)mysql> insert into test(val,data) values(30,'hui');Query OK, 1 row affected (0.03 sec)mysql> flush logs; --产生第二个日志文件Query OK, 0 rows affected (0.09 sec)mysql> insert into test(val,data) values(40,'aaa');Query OK, 1 row affected (0.05 sec)mysql> insert into test(val,data) values(50,'bbb');Query OK, 1 row affected (0.03 sec)mysql> insert into test(val,data) values(60,'ccc');Query OK, 1 row affected (0.03 sec)mysql> delete from test where id between 4 and 5; --删除记录Query OK, 2 rows affected (0.05 sec)mysql> insert into test(val,data) values(70,'ddd');Query OK, 1 row affected (0.03 sec)mysql> flush logs; --产生第三个文件文件Query OK, 0 rows affected (0.11 sec)mysql> insert into test(val,data) values(80,'dddd');Query OK, 1 row affected (0.05 sec)mysql> insert into test(val,data) values(90,'eeee');Query OK, 1 row affected (0.03 sec)mysql> drop table test; --删除表Query OK, 0 row affected (0.05 sec)2. 恢复数据先用mysqlbinlog工具将日志文件生成txt文件出来分析。

Sql代码mysql>mysqlbinlog /var/log/mysql/mysql-bin.000001 >/var/log/mysql/000001.txt;mysql>mysqlbinlog /var/log/mysql/mysql-bin.000002 > /var/log/mysql/000002.txt;mysql>mysqlbinlog /var/log/mysql/mysql-bin.000003 > /var/log/mysql/000003.txt;通过这三个命令,可以生成分别记录了日志文件的内容,也就是用户操作的步骤。

因为我们需要重做第一个日志文件的所有操作,所以这里只需要将第一个日志文件全恢复就行了。

Sql代码mysql>mysqlbinlog /var/log/mysql/mysql-bin.000001 | mysql -uroot –pOk,接着,我们需要分析的是第二个日志文件。

为什么要分析它呢,因为它中途执行了一个操作是DELETE,因为我们要做的是恢复全部数据,也就是我们不希望去重做这个语句。

所以在这里我们要想办法去绕开它。

我们先打开.txt文件来分析一下。

Sql代码/*/*!40019 SET @@session.max_insert_delayed_threads=0*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER /*!*/;# at 4#090427 15:27:56 server id 1 end_log_pos 106 Start: binlog v 4, server v 5.1.32-community-log created 090427 15:27:56BINLOG 'fF71SQ8BAAAAZgAAAGoAAAAAAAQANS4xLjMyLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC'/*!*/;# at 106#090427 15:28:37 server id 1 end_log_pos 176 Query thread_id=1 exec_time=0 error_code=0use mytest/*!*/;SET TIMESTAMP=1240817317/*!*/;SET @@session.pseudo_thread_id=1/*!*/;SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1,@@session.unique_checks=1, @@session.autocommit=1/*!*/;SET @@session.sql_mode=1344274432/*!*/;SET @@session.auto_increment_increment=1,@@session.auto_increment_offset=1/*!*/;/*!/C gbk *//*!*/;SET@@session.character_set_client=28,@@session.collation_connection=28,@@session.c ollation_server=28/*!*/;SET @@session.lc_time_names=0/*!*/;SET @@session.collation_database=DEFAULT/*!*/;BEGIN/*!*/;# at 176#090427 15:28:37 server id 1 end_log_pos 204 IntvarSET INSERT_ID=4/*!*/;# at 204#090427 15:28:37 server id 1 end_log_pos 312 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817317/*!*/;insert into test(val,data) values(40,'aaa')/*!*/;# at 312#090427 15:28:37 server id 1 end_log_pos 339 Xid = 12COMMIT/*!*/;# at 339#090427 15:28:46 server id 1 end_log_pos 409 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817326/*!*/;BEGIN/*!*/;# at 409#090427 15:28:46 server id 1 end_log_pos 437 IntvarSET INSERT_ID=5/*!*/;# at 437#090427 15:28:46 server id 1 end_log_pos 545 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817326/*!*/;insert into test(val,data) values(50,'bbb')/*!*/;# at 545#090427 15:28:46 server id 1 end_log_pos 572 Xid = 13COMMIT/*!*/;# at 572#090427 15:29:35 server id 1 end_log_pos 642 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817375/*!*/;BEGIN/*!*/;# at 642#090427 15:29:35 server id 1 end_log_pos 670 IntvarSET INSERT_ID=6/*!*/;# at 670#090427 15:29:35 server id 1 end_log_pos 778 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817375/*!*/;insert into test(val,data) values(60,'ccc')/*!*/;# at 778#090427 15:29:35 server id 1 end_log_pos 805 Xid = 14COMMIT/*!*/;# at 805#090427 15:30:21 server id 1 end_log_pos 875 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817421/*!*/;BEGIN/*!*/;# at 875#090427 15:30:21 server id 1 end_log_pos 981 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817421/*!*/;delete from test where id between 4 and 5/*!*/;# at 981#090427 15:30:21 server id 1 end_log_pos 1008 Xid = 15COMMIT/*!*/;# at 1008#090427 15:30:34 server id 1 end_log_pos 1078 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817434/*!*/;BEGIN/*!*/;# at 1078#090427 15:30:34 server id 1 end_log_pos 1106 IntvarSET INSERT_ID=7/*!*/;# at 1106#090427 15:30:34 server id 1 end_log_pos 1214 Query thread_id=1 exec_time=0 error_code=0SET TIMESTAMP=1240817434/*!*/;insert into test(val,data) values(70,'ddd')/*!*/;# at 1214#090427 15:30:34 server id 1 end_log_pos 1241 Xid = 16COMMIT/*!*/;# at 1241#090427 15:30:41 server id 1 end_log_pos 1282 Rotate to mysql-bin.000003 pos: 4DELIMITER ;# End of log fileROLLBACK /* added by mysqlbinlog */;/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;―――――――――――――――――――――――――――――――――――――*/在这个文件中,我们可以看到DELETE的操作的起始位置是875,终止位置是1008,那么我们只要重做第二个日志文件的开头到的操作,然后再从到末尾的操作,我们就可以把数据给恢复回来,而不会DELETE数据。

相关文档
最新文档