• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

起用二进制日志文件进行mysql数据恢复

mysql 搞代码 7年前 (2018-06-04) 130次浏览 已收录 0个评论

启用二进制日志文件进行mysql数据恢复
启用二进制日志文件进行mysql数据恢复
   查看文件/etc/my.cnf中[mysqld]配置块的是否配置log-bin 项,用来记录数据库更改的日志,
然后设置要需要写入日志的数据库或者不要写入日志的数据库。

[mysqld] . . . server-id=1 //数据库的 id 这个应该默认是1就不用改动 log-bin=log_name //日志文件的名称 binlog-do-db=db_name //记录日志的数据库 binlog-ignore-db=db_name //不记录日志的数据库 

欢迎大家阅读《起用二进制日志文件进行mysql数据恢复》,跪求各位点评,by 搞代码

查看是否启用了binlog:

mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin       | ON    |  +---------------+-------+ 1 row in set (0.00 sec)

查看mysql数据库现在(正在)记录二进制数据的文件具体信息

mysql> show master status/G; *************************** 1. row *************************** File: mysql-bin.000060 Position: 106 Binlog_Do_DB: qwe; Binlog_Ignore_DB:  1 row in set (0.00 sec) ERROR:  No query specified mysql> 

日志开始从106位置开始记录,数据库qwe.
对数据库进行如下操作

mysql> insert into test(val,data) values(100,'ffff'); Query OK, 1 row affected (0.00 sec) mysql> insert into test(val,data) values(110,'gggg'); Query OK, 1 row affected (0.00 sec) mysql> insert into test(val,data) values(120,'ffff'); Query OK, 1 row affected (0.01 sec) mysql> delete from test where id between 4 and 5; Query OK, 2 rows affected (0.00 sec) mysql>  drop table test; Query OK, 0 rows affected (0.01 sec) mysql> show tables; Empty set (0.00 sec) 

如何恢复刚刚删除数据库的所有信息。
   首先,用mysqlbinlog命令对二进制的日志文件解析成文本文件。如:

[root@localhost /]# mysqlbinlog mysql-bin.000005  >/root/Desktop/5.txt

打开5.txt,#

at 1214 #111017 16:30:35 server id 1  end_log_pos 1317  Query thread_id=3 exec_time=0 error_code=0 SET TIMESTAMP=1318840235/*!*/; delete from test where id between 4 and 5 /*!*/; # at 1317 #111017 16:30:43 server id 1  end_log_pos 1345  Intvar SET INSERT_ID=7/*!*/; # at 1345 #111017 16:30:43 server id 1  end_log_pos 1450  Query thread_id=3 exec_time=0 error_code=0

因为delete的操作在pos1317和1345之间。

[root@localhost var]# mysqlbinlog mysql-bin.000005 --stop-pos=1214 |mysql -uroot -p Enter password:  [root@localhost var]# mysqlbinlog mysql-bin.000005 --start-pos=1317 |mysql -uroot -p Enter password: 

被删除的数据恢复。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:起用二进制日志文件进行mysql数据恢复

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址