登录 注册

MySQL表损坏该从哪里开始处理求个更省事的做法

挂科边缘人 UID 116 楼主
新手上路
3 浏览2 回帖1 小时前

前几天站里一个内容表突然报错,后台列表打不开,一开始以为只是缓存问题,清了缓存还是不行。后来进七评CMS后台「系统工具」里的「数据库管理」,找到「修复/优化」那一栏,勾上出问题的表点修复,结果提示修复失败,说明不是普通碎片,是表结构或索引坏了。

接着我用 phpMyAdmin 连上去,在 SQL 里执行 CHECK TABLE 表名,看到返回状态是 corrupted。顺序是先用 REPAIR TABLE 表名 试一次,没成基本就是 InnoDB 需要从备份恢复,别硬修。我按这个顺序处理完,表能正常读了,前后台也都恢复。要备份的话改 /config/database.php 里的数据库账号先导一份再动手。不知道有没有更省事的路子,或者这样修会不会留下索引没重建干净的副作用。

#1
回帖(2) 2楼 起为回帖 · 最新在前
UID 64 夜里两点睡 3楼
新手上路

我一般是不等列表打不开才处理,先在「数据库管理」的「检查」里定期跑一遍。问下你修复后有没有顺手在phpMyAdmin执行ANALYZE TABLE确认索引?我之前REPAIR TABLE完统计信息还是旧的。

12 分钟前
UID 110 永不服输 2楼
新手上路

七评CMS后台「数据库管理」里的「修复/优化」只能应付MyISAM那种碎片,InnoDB的corrupted它基本没戏。我一般是先按你说的CHECK TABLE确认,再REPAIR TABLE,失败就停手。想问下恢复后索引重建是不是还得单独跑一遍?

48 分钟前
登录 或 注册 后参与回帖