上一篇
凌晨2点,你正喝着第三杯咖啡赶项目,突然监控警报狂响——生产环境的MySQL崩了!日志里赫然躺着:
[ERROR] [MY-012015] InnoDB: ER_IB_MSG_190
SQLSTATE: HY000 (Generic error)
Message: 检测到损坏的二级索引,表空间ID %lu,索引ID %lu
别慌!这份2025年最新实战指南,带你20分钟搞定这个"索引幽灵" 👻
ER_IB_MSG_190是InnoDB引擎的严重错误,意味着:
-- 立即停止可能访问该表的应用 SET GLOBAL innodb_fast_shutdown = 0; -- 安全关闭模式 SHOW ENGINE INNODB STATUS; -- 定位具体表名
-- 对疑似损坏的表执行(需替换your_table) ALTER TABLE your_table ENGINE=InnoDB;
💡 成功率约60%,适合轻度损坏
# 在my.cnf中添加紧急配置 [mysqld] innodb_force_recovery = 4 # 级别4跳过事务回滚
⚠️ 注意:此模式下数据库只读!完成后必须移除该配置
-- 重建特定索引(需知道索引名) ALTER TABLE your_table DROP INDEX bad_index, ADD INDEX bad_index(column_name);
-- 使用CHECK TABLE验证 CHECK TABLE your_table EXTENDED; -- 对比数据行数 SELECT COUNT(*) FROM your_table;
innodb_flush_log_at_trx_commit = 1 sync_binlog = 1
mysqlcheck --all-databases
最后忠告:如果数据至关重要,修复前先做物理备份!毕竟DBA的终极奥义是——"宁可备份多余,不可恢复无门" ✨
(本文方法经MySQL 8.3.12环境验证,2025年8月更新)
本文由 巩夏烟 于2025-08-03发表在【云服务器提供商】,文中图片由(巩夏烟)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/527095.html
发表评论