使用Mysqlbinlog恢复数据

北京根治皮炎医院 http://m.39.net/pf/a_8833134.html
前言

由于服务器异常宕机,导致Mysql数据库文件损坏,部分表数据丢失。

幸好MySQL8.0默认开启了binlog,可以用它恢复数据。

操作步骤1.复制数据库文件

复制/var/lib/mysql目录下所有文件到其他目录备份,例如/tmp/mysql,避免binlog文件被误操作修改。

2.生成sql

使用mysqlbinlog命令将所有的binlog文件导出成sql,可以合并到一个文件中:

#第一个binlog文件mysqlbinlog/tmp/mysql/binlog.--verbosedump.sql#按顺序导出其他binlog,注意是mysqlbinlog/tmp/mysql/binlog.--verbosedump.sql...#直到最后一个binlogmysqlbinlog/tmp/mysql/binlog.xxx--verbosedump.sql3.恢复数据

另外找一台Mysql数据库服务器,在上面创建需要恢复数据的同名数据库。

由于我们只有部分表数据丢失,因此我们仅在同名数据库中创建指定的空表结构。

然后执行下列命令:

mysql-f-uroot-pdump.sql

-f的作用是忽略Sql执行错误。

输入root密码后,等待命令执行完成,既可看到表中数据已经恢复了。

最后,将恢复的数据导入回原始库既可。

结论

binlog还是很有用的,但在MySQL8.0之前的版本中,默认情况下是禁用binlog的,建议手工配置启用它。

预览时标签不可点收录于合集#个上一篇下一篇

转载请注明:http://www.aierlanlan.com/rzfs/838.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了