mysql 数据库恢复 frm,ibd文件恢复数据 数据库修复
由于不可抗力因素,我的服务器炸了
具体是mysql坏了不得不重新安装
安装完成后发现数据都没了
只剩下一堆物理文件
今天把自己修复数据的方法记录一下,方便以后查阅。
所需工具:
Recovery Toolbox for MySql
下载地址:RecoveryToolboxForMySql_jb51.rar
所需文件:
就是拷贝的 frm 还有 ibd 文件 如下:
这是我从 Linux 上下载的 本来在 mysql var 目录下
方法:
1.首先用Recovery Toolbox for MySql工具创建表结构
在mysql执行sql语句
创建表
我这里数据库命名为 wxhost 挨个把表都给创建进去了
这样我们就可以把数据表结构给弄出来了
2.恢复数据
我是ubuntu系统 lnmp环境
先从admin表开始
输入命令 mysql 开始操作
此处有点小插曲
root@instance:~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
打开 my.cnf 配置 在 mysqld下 添加 skip-grant-tables
vim /etc/my.cnf
skip-grant-tables
重启mysql服务
现在执行mysql就可以了
执行解除表空间绑定命令,对应的idb文件自动删除
mysql> use wxhost;
Database changed
mysql> alter table admin discard tablespace;
Query OK, 0 rows affected (0.04 sec)
执行该操作后,将删除 对应得ibd文件,我们此时将下载得ibd文件上传至var目录下。
修改文件所有者权限给mysql
chown mysql:mysql admin.ibd
绑定表空间
mysql> alter table admin import tablespace;
Query OK, 0 rows affected, 1 warning (1.82 sec)
完毕后,查看表数据,已经恢复
mysql> select count(*) from admin;
+----------+
| count(*) |
+----------+
| 97746 |
+----------+
1 row in set (0.04 sec)
mysql>
其他的表依此类推。
已经完美恢复了所有数据
转载请标明出处~