MySQL之ibdata1删除后恢复,Error1146

data目录的数据库文件夹下 ibd文件存储数据,frm文件存放表结构的定义,ibdata1是表空间数据,有关ibdata1的作用详见另一篇Blog,MySQL之表空间。当删除ibdata1文件后,有三种恢复数据库的方法。

通过重新导入数据恢复

ibdata1被删除后,再访问各表时提示,Error1146,Table doesn’t exist,如下图所示:
在这里插入图片描述
通过重新导入备份的脚本数据方式,重新修复数据。ibdata1被删除,而各个数据库下的表文件没有被删除,在导入脚本数据时,提示如下:

[Err] 1813 - Tablespace for table '`mybase`.`mytable`' exists. Please DISCARD the tablespace before IMPORT.
[Msg] Finished - Unsuccessfully

需要删除data目录下数据库文件夹下的所有ibd和frm文件,再次导出脚本数据则成功。

通过备份和覆盖的方式恢复

通过备份和覆盖data目录下的数据库文件的方式恢复数据库,包括删除数据库,或者重命名数据库。数据库表结构可以通过MySQL Utilities工具My导出表结构。详见另一篇Blog《mysql 误删ibdata1文件 恢复数据》

通过mysqld的pid(进程ID)恢复

当MySQL实例启动时,会将自己的进程ID写入一个文件中——该文件即为pid文件,通过PID进程进行恢复。详见《mysql 误删除ibdata1之后如何恢复》

【1】MySQL数据库文件,From DB-Engineer
【2】mysql 误删除ibdata1,数据库重启之后的恢复方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值