企业新闻

Mysql--在没有ibdata1文件的情况下用-.frm和-.ibd文件恢复数据库

2020-12-17 12:52:30 zou 53

Mysql--在没有ibdata1文件的情况下用*.frm和*.ibd文件恢复数据库


切记 恢复之前先把备份好的frm和ibd文件拷贝到别的文件夹做好备份,免得一次不成功改写了文件!


1安装MySQL Utilities管理工具,可在官网下载;

(附https://downloads.mysql.com/archives/utilities/)


2创建同名数据库;(创建数据库之前如果show databases命令还能查到目标数据库,可以直接删除data目录下的该数据库文件夹);


3然后把.frm文件拷贝到data/数据库名 文件夹下,用于一会恢复表结构


4cd到data/数据库名 目录下,执行以下命令

mysqlfrm --server=root:rootpassword@localhost mydb:mytable.frm --port=3307

注意:rootpassword为数据库密码 如果没有可以不填,mydb为数据库名,mytable为表名;


5.执行后稍等片刻就会在命令行打印出创建表的sql语句,然后复制出来利用sql管理工具执行去创建表(如果执行之前数据库中已经存在表则先删除此数据表然后再执行sql语句);此时数据库和表结构已经恢复完毕;


然后利用*.ibd文件恢复数据表里面的数据;步骤如下:


6.登陆数据库执行以下语句:

ALTER TABLE `数据库名`.`表名` DISCARD TABLESPACE;


7.然后把备份的*.ibd文件拷贝到data目录下的数据库文件夹下;登陆数据库然后执行以下命令:

ALTER TABLE `数据库名`.`表名` IMPORT TABLESPACE;


稍等片刻 ok 数据恢复成功!!!

首页
产品
新闻
联系