一次修复MySQL数据库的经历

本文记录了一次因服务器硬盘满导致MySQL数据库表损坏后的修复过程。包括确定表引擎类型、重建缺失的数据文件及使用SQL命令修复等步骤。

一次修复MySQL数据库的经历


实验室服务器的硬盘满了,结果导致一个线上服务的MySQL数据库的两个表坏了。具体症状是desc cdb_searchindex显示

ERROR 1017 (HY000): Can't find file: 'cdb_searchindex' (errno: 2)

这是要通过/etc/my.cnf(或者同类的mysql配置文件)找到数据文件的位置。定位后进入文件夹,ls cdb_searchindex*一看,只剩一个cdb_searchindex.frm文件了。

接下来要进行恢复了。

第一步是确定这个表的引擎类型,命令是:

show table status from `discuz`;

一看都是MyISAM,恢复起来就相对比较容易了。

第二步是在数据库文件所在的文件夹中新建cdb_searchindex.MYDcdb_searchindex.MYI两个文件,注意权限应该是mysql的。

第三步是在mysql中用

repair table cdb_searchindex USE_FRM;

就可以恢复了。

第四步用

mysqlcheck discuz;

没啥问题就OK了。

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值