关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

MYSQL8启动失败引起的.IDB数据库迁移修复

发布时间:2024/3/14 13:51:54
香港云服务器

因客户未知原因,导致服务器MYSQL8无法启动了。寻求我们的协助。试了N久,无法启动成功。只能判断是data目录里面出问题了。退求其次,把.IDB数据库迁移到别的机器上进行恢复。

首先,搭建相同版本的mysql8 ,然后新建带有相同数据库名和表名以及属性的值, 如果有相同的程序,建议直接安装,生成好之后 ,登录到数据库里执行数据清空操作。比如phpmyadmin 就很方便。注意是清空,不是删除数据表。

然后对新建的数据库A里的每个表都执行一次,比如 里面还有表xen_table 、 xen_table_column:


ALTER TABLE `xen_table` DISCARD TABLESPACE;

ALTER TABLE `xen_table_column` DISCARD TABLESPACE;


这个语句是将空表A数据库在表面删除了。删除后再看新搭建MYSQL数据库A下,目录里已经看不到了xen_table 、 xen_table_column 了。

然后将直接打包备份出来无法启动的的数据库的b目录下的 .idb数据库文件拷贝到空数据库A的目录里。


在A端再次执行恢复命令,也是一个个表恢复,或者做好语句统一执行:

ALTER TABLE `xen_table` IMPORT TABLESPACE;
ALTER TABLE `xen_table_column` IMPORT TABLESPACE;


不报错的情况下,A数据文件一个个的恢复成功,这时候再查看表里面的内容,已经正常了。

数据表多的情况下,会比较繁琐,但是能解决问题,也是一种新的收获.