服务器异常断电,导致mysql某一个table .idb文件损坏,在idata1页存在异常损坏;
在开启mysql服务一开启就之后据自动关闭,提示异常服务终端异常;
mysql数据维护人员一定要有定时备份数据,利用mysql worhbench 的management中的data export 导出数据,可以分结构与数据分开导出,好习惯要持续;
之后自己再学习怎么做到自动备份数据!!!
解决步骤:
服务器重新安装mysql,将之前的安装卸载干净;
现在开始学习怎么一个一个表格来恢复数据:(建议在自己电脑localhost数据库中操作)
1、先将服务器路径下的data拷贝到自己本机硬盘中,命名old_data;
2、随便新建一个schema;新建table;table命名为你想要恢复的table名,随便新建一列(不管列名内容);断开mysql服务,
3、将old_table下的table.ifm拷贝覆盖现有的.ifm,再连接mysql服务;执行select语句;报错:该表table不存在;原因是你的table列名数不够;
4、进入.err文件查看,clt+F查询table名,告知你table原本有多少列;
5、得知多少列数之后,删除表格,重新建表,修改列表个数,重复第三步,你会得到table表结构;
6、执行语句;alter table table名 diascrd tablespace;
7、你会发现在data路径下schema文件中出现了table名.ibd文件被删除;
8、将old_table下的table.idb文件复制粘贴到现有文件下;执行语句alter table table名 import tablespace;出现警示,不过没有关系的;
9;再次去执行select语句;就可以看到old_table的数据还原在现有文件中;
10、导出现有的数据,再导入数据到服务器上去;
虽然过程新辛苦,一个庞大的数据库一个一个table导入会比较麻烦;还是比较笨的方法的;