关注微信公众号[程序员白泽],进入白泽的知识分享星球 前言 作为<手撕MySQL>系列的第二篇文章,今天介绍一下MySQL的二进制日志(bin log),注意不要和MySQL的InnoDB存储引擎特有的重写日志(redo log)混淆,bin log是记录所有数据库表数据及表结构变更的二进制日志(不会记录查询操作),借助这个日志可以实现:数据恢复和主从复制(不难理解,因为所有涉及变更的操作都记录了下来,可以追溯). 这篇文章侧重于讲解使用bin log进行数据恢复,下一篇文章讲解主从复制. 预…
  binlog_format='mixed' (root)[(none)]>use test; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed (root); Query OK, row affected (0.00 sec) Rows matched…
mysqlbinlog恢复bin-log数据 Binlog日志即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即从节点同步主节点数据时获取的即是bin-log,也可以通过bin-log日志来进行本机数据恢复. 1.可以登录mysql客户端查看bin-log有没有开启: mysql> show variables like '%log_bin%'; +---------------------------------+--------------------…
mysqlbinlog恢复数据 BINLOG就是一个记录SQL语句的过程,和普通的LOG一样.只是它是二进制存储,普通的是十进制存储. ============================================================================== 1.启动二进制日志记录,默认mysql关闭binlog.# vim /etc/my.cnf,修改或添加 #log-bin = mysql-bin (此处等号后边名字可以自定义) 重启mysql bin-lo…
操作命令: 复制代码代码如下: show binlog events in 'mysql-bin.000016' limit 10; reset master 删除所有的二进制日志flush logs  产生一个新的binlog日志文件 show master logs; 或者 show binary logs; 查看二进制文件列表和文件大小 复制代码代码如下: ./mysqlbinlog --start-datetime="2012-05-21 15:30:00" --stop-da…
实战 SQL Server 2008 数据库误删除数据的恢复 关键字:SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份.让我帮他解决一下,不然他要赔偿客户很多钱. SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份.…
前提:mysql数据库开启了binlog日志,并且有对应的日志文件 起因:今天由于同事对数据库的误操作不小心删除了一条数据 方法一:通过binlog日志文件恢复数据 通过mysqlbinlog恢复MySQL数据的两种方法: (1)时间date回滚    通过cmd运行到binlog所在的目录,再录入如下命令: mysqlbinlog --stop- | mysql -uroot -pxxx (恢复到2018-03-12 17:32:59之前的数据,如果是start-date,即从该时间点后的开始…
SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可.但是,这个恢复需要有两个前提条件: 1. 至少有一个误删除之前的数据库完全备份. 2. 数据库的恢复模式(Recovery mode)是“完整(Full)”. 针对这两个前提条件,会有三种情况: 情况一.如果这两个前提条件都存在,通过SQL语句只需三步就能恢复,无需借助第三方工具. a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY b)…
前提数据库开启了bin_log记录日志. 查看日志 刷新日志 flush logs; 再次查看 show binary logs; 向表中插入一条数据 现在执行delete误操作,删除所有的数据. delete from admin; 先查看binlog,生成002.sql:mysqlbinlog mysql-bin.000002 > 002.sql 查看002.sql,并只摘取delete部分内容: 可以看到在时间2018-08-15 18:14:15我们做了delete误操作.现在需要用my…
mysqlbinlog 恢复数据注意事项 前言: 上次有个有个朋友恢复 MySQL 数据,一直恢复不成功,也没有报错信息,使用的环境是 MySQL 5.7 使用了 GTID 以及 binlog 格式为 ROW.现在我主要总结下没有恢复成功可能的原因以及解决方法. 1.不要使用 base64-output=decode-rows 参数 --base64-output=decode-rows主要是解析 ROW 级别 binlog 日志时使用. 我们解析日志的时候都会使用: # mysqlbinlog…