MySQL数据表损坏导致服务无法启动的问题处理笔记
1.问题现象。
mysql服务启动后立刻停止;使用navicat链接提示1607等错误信息;
2.问题分析。
查看data文件夹里面的.err错误日志,我们所遇到的错误信息显示xx库的xx表corrupt已损坏。
3.尝试解决。
通过百度,网上大部分解决问题有两种方式:(1)在my.ini文件中加入1~6的配置参数,实际上我这么操作后没有起作用。(2)重新安装mysql数据库,最终起作用的方式。
4.最终解决办法。
最终通过重新安装mysql的方式处理的,但是有许多细节需要详细记录一下。
(1)坏表的iba文件和mry文件已损坏,就算重新安装可能也无法使用,需要尝试使用修复软件去修复这个坏表的数据文件(我可能打错了后缀名称,看得懂就行)
(2)由(1)可知,坏表的iba文件已经无法使用了,你需要放弃这个表的数据或者使用修复工具去修复这个表的数据文件,我们的操作方式通过虚拟机的快照恢复以前可用的数据表文件,使用以前的来替换坏表的iba数据文件,这样可能丢失快照到现在的数据。
(3)我们的思路已经确定了,通过(2)拿到一份可用的坏表以前的.iba文件,通过(1)重新安装mysql数据库服务。
(4)重新安装mysql的时候,记得该备份的备份,卸载的时候一定要卸载干净,包括注册表、mysql相关文件夹。
(5)生产环境原来已有的mysql数据库账号 在“mysql”数据库这个里面的,可用拷贝出来,替换新安装的mysql数据库的"mysql"数据库。
(6)data文件夹中的.ibade(名称可能打错) 也需要使用原来的替换掉,此处替换文件时日志文件可以不用替换。
(7)将原来data文件中好的.iba及.mry数据文件拷贝到新安装的mysql数据库的data文件中,可以正常加载的。
(8)启动mysql服务。
5.注意事项
(1)操作mysql文件时,要先停服务。
(2)注意查看data文件夹中的.err错误日志。
(3)my.ini文件中有很多有用的参数配置,最好要备份且不要乱配置。
(4)生产环境的mysql数据库服务,要经常备份,特别是data文件夹的备份,切记切记切记。
(5)一定要以预防为主,不要等数据库出现问题才来补救,因为补救的代价比预防的代价高得多,建议就是多备份勤备份,出现问题好恢复,MySQL最重要的文件就是data文件夹,其次是my.ini文件。
以上是我们解决数据表损坏的过程记录。