如何运行asp.net网站,南京品牌网站开发模板,关于 门户网站 建设 请示,始兴建设局网站binlog日志简介:binlog 就是binarylog#xff0c;二进制日志文件#xff0c;这个文件记录了MySQL所有的DDL和DML(除了数据查询语句)语句#xff0c;以事件形式记录#xff0c;还包含语句所执行的消耗的时间。binlog日志包括两类文件#xff1a;1)二进制日志索引文件(文件名…binlog日志简介:binlog 就是binarylog二进制日志文件这个文件记录了MySQL所有的DDL和DML(除了数据查询语句)语句以事件形式记录还包含语句所执行的消耗的时间。binlog日志包括两类文件1)二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件2)二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。binlog日志对于mysql数据库来说是十分重要的。在数据丢失的紧急情况下可以尝试用binlog日志功能进行数据恢复操作。正是由于binlog日志以上的特性在实际的案件取证中也可以通过binlog日志来恢复删除数据。要通过binlog日志恢复mysql数据库删除数据的前提binlog日志确定是开启的。查看binlog日志是否开启,有以下三种方法方法一打开MySQL数据库的配置文件(windows系统中的配置文件为my.ini一般在安装目录的根目录下Linux系统中配置文件为my.cnf一般在/usr/local/mysql/etc/目录下)在配置文件中查看log-binMySQL-bin有没有被注释掉(每行第一个字符为#号表示该行被注释)若没被注释表示开启若被注释表示没有开启。方法二在MySQL命令行下使用show variables like‘log_bin’;命令查看binlog日志是否开启Value的值为ON表示开启为OFF表示关闭。方法三在存放数据库的文件夹中是否存在mysql-bin.000001类似的文件有则表示binlog日志功能是开启的。在数据恢复过程中会用到的binlog日志操作命令1、查看所有binlog日志列表在mysql命令界面输入命令 mysql show master logs2、查看master状态即最后(最新)一个binlog日志的编号名称及其最后一个操作事件pos结束点(Position)值在mysql命令界面输入命令 mysql show master status3、刷新log日志自此刻开始产生一个新编号的binlog日志文件在mysql命令界面输入命令mysql flush logs注每当mysqld服务重启时会自动执行此命令刷新binlog日志在mysqldump备份数据时加 -F选项也会刷新binlog日志4、重置(清空)所有binlog日志在mysql命令界面输入命令mysql reset master如何读取binlog日志中的内容1、使用mysqlbinlog自带查看命令法注: binlog是二进制文件普通文件查看器cat more vi等都无法打开必须使用自带的 mysqlbinlog命令查看binlog日志与数据库文件在同目录中。Mysql安装路径下的bin文件夹下输入以下命令C:\xampp\mysql\binmysqlbinlogC:\xampp\mysql\data\mysql-bin.0000092、上面这种办法读取出binlog日志的全文内容较多不容易分辨查看pos点信息这里介绍一种更为方便的查询命令在MySQL的命令界面在mysql命令界面输入mysql show binlog events [IN log_name] [FROMpos] [LIMIT [offset,] row_count]选项解析↓IN log_name指定要查询的binlog文件名(不指定就是第一个binlog文件)FROM pos指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)LIMIT [offset,]偏移量(不指定就是0)row_count查询总条数(不指定就是所有行)删除数据案例及操作步骤:下面我们通过一个实例操作来完整查看「如何通过binlog日志恢复MySQL数据库删除数据。案例介绍:现有MySQL数据库其中有名为test的数据库其中没有任何的表怀疑数据被删除在该电脑中还发现了该数据库的备份备份最后被修改的时间为2018-11-2115:27:12。目的:查看是否有删除的操作如有删除尝试恢复出删除的表的内容。思路分析:1、判断数据库是否开启了binlog日志的功能2、通过binlog日志查询是否有删除的操作3、若删除了数据通过binlog日志恢复数据库中的内容。下图就是通过binlog日志实现增量恢复数据库删除数据的流程01.判断数据库是否开启了binlog日志在MySQL命令行下使用show variableslike‘log_bin’;命令中log_bin的Value为ON该数据库的binlog日志是开启的。02.判断数据库是否有被删除的操作1)在mysql命令界面通过show master logs命令查看binlog日志列表发现一共有8条日志。2)在mysql命令界面通过命令show binlog events inmysql-bin.000008可以查看最后两条命令为“use ‘test‘delete from t1usetestDROP TABLE t1”由此可判断出数据库test中t1表中的内容被清空了并且把表也删除了。03.恢复数据库中删除的数据1)由于表t1被删除了没有该表的数据结构无法直接通过binlog日志来恢复删除的数据但是我们在电脑中发现了该数据库的备份直接还原后就可以得到表t1的数据结构。(这里不做还原的详细解说如果您想了解还原详细操作步骤可在后台留言)。恢复出的数据结构2)备份最后修改时间为2018-11-2115:27:12MySQL-bin.000008的创建时间为2018-11-2014:15:40可以推断出备份后表t1的所有操作都在该日志中。3)在mysql命令界面使用命令show binlog events inmysql-bin.000008打开最后一个日志文件找出开始和结尾的pos点分别为4和1223如下图4)提取日志文件该段落在mysql安装界面的bin目录下输入一下命令mysqlbinlog C:\xampp\data\mysql-bin.000008 --start-position4--stop-position1223 -r 1.sql该命令把日志文件中的所有语句提取到了bin目录下的1.sql中。5)通过分析该sql文件可以发现其中记录了每一条命令的执行的时间找到备份创建时间2018-11-2115:27:12之后的所有命令另存为2.sql。如下图6)另存为2.sql后把最后两条删除的命令去除直接在数据库中运行就可以恢复出表中的所有数据。注意事项:1、在恢复之前一定要确认MySQL数据库的binlog日志是开启的2、若把表删除一定要想办法把表的数据结构找到这样才能准确的恢复出数据3、binlog日志中是记录了每条语句的执行时间的可以通过时间来恢复4、在截取插入语句的时候一定要注意不要把最后一条删除的语句截取到不然恢复的数据又会被删除。以上就是使用binlog日志恢复MySQL数据库删除数据的方法希望上述的问题解决思路能给大家一些参考和帮助。如对文中的操作、描述有任何疑问或者有相关数据库恢复案件协助支持也可以直接在微信公众号后台给我们留言。