1、
随意创建一张表,但是这张表的名字要和你要恢复的.frm或者.ibd一致,我的.frm与.ibd文件为gonggao.frm与gonggao.ibd 因此我的创建表语句为:
create table gonggao(id int);
2、在执行上面的创建表语句之后,在服务里面或者使用net stop mysql关闭数据库服务,然后用需要恢复的gonggao.frm覆盖这个新建的ww数据库gonggao表的物理文件gonggao.frm,接着对配置文件(my.ini)设置innodb_force_recovery = 6,然后使用net start mysql启动服务,接着使用:desc gonggao; 查看该表结构,会出现下面错误信息:
contains 1 user defined columns in InnoDB, but 19 columns in MariaDB.
3、
解决方案:删除gonggao表重新创建一个包含4个字段的表,具体这4个字段是什么不用管的。具体执行过程为使用net stop mysql停掉服务,然后在配置文件my.ini中将innodb_force_recovery = 6注释掉(#或;均可),再net start mysql启动服务。接着在控制台先执行drop table gonggao;删除表,再执行创建表语句,我执行的是下面的创建表语句:create table gonggao(id int,id1 int,id2 int,id3 int);
紧接着按照前面的方式,使用net stop mysql关闭数据库服务,然后用需要恢复的gonggao.frm覆盖这个新建的ww数据库的gonggao表的物理文件gonggao.frm,接着对配置文件(my.ini)设置innodb_force_recovery = 6,然后使用net start mysql启动服务,接着使用:desc gonggao; 查看该表结构
4、
文章讲述了如何在InnoDB数据库恢复过程中遇到结构不兼容问题,通过创建新表、覆盖物理文件并调整`innodb_force_recovery`参数来修复。解决方案包括删除旧表、重新创建并覆盖表文件,确保数据库服务正确重启。
1440

被折叠的 条评论
为什么被折叠?



