遇到MySQL数据丢失的窘境?

想象一下这个场景:

  •    MySQL没有备份
  •    MySQL是单点部署
  •    MySQL突然宕机无法启动


如何恢复 MySQL 5.7 的数据 - 不用离职的救命方案

对于 MySQL 5.7 的数据恢复,我们可以借助 dbsake 和 ibd2sql 这两个强大的工具来完成。这个方法不仅可以恢复表结构,还能恢复数据,是一个相当完整的解决方案。下面是详细步骤:


第一步:使用 dbsake 恢复表结构

  1. 安装 dbsake:
curl -s get.dbsake.net > dbsake
chmod 755 dbsake
  • 1.
  • 2.
  1. 使用 dbsake 从 frm 文件恢复表结构:
./dbsake frmdump /data/mysql/mysql57_1/data/test/t2.frm
  • 1.

恢复宕机起不来的MySQL 5.7数据库_MySQL

这一步将为我们提供完整的表结构 SQL。


第二步:使用 ibd2sql 恢复数据

  1. 在 MySQL 8.0 实例中创建刚才恢复的表结构。
  2. 下载并设置 ibd2sql:
wget https://github.com/ddcw/ibd2sql/archive/refs/heads/main.zip
unzip main.zip
cd ibd2sql-main
  • 1.
  • 2.
  • 3.
  1. 使用 ibd2sql 从 ibd 文件恢复数据:
python3 main.py /data/mysql/mysql57_1/data/test/t2.ibd 
--sdi-table /data/mysql/mysql8/data/recover/t2.ibd 
--sql --ddl --complete-insert --mysql5
  • 1.
  • 2.
  • 3.

恢复宕机起不来的MySQL 5.7数据库_MySQL_02

回车后,MySQL 5.7 ibd文件已经转换为SQL语句,至此大功告成。