mysql无法启动-You may have to recover from a backup
错误日志报以下错误(片断):
InnoDB: Database page corruption on disk or a failed InnoDB: file read of page 5. InnoDB: You may have to recover from a backup. 2020-06-19 17:22:00 7f11c48e1720 InnoDB: Page dump in ascii and hex (16384 bytes): len 16384; hex 7478d078000000050000000000000000000000000f001f4d000700000000000000000000000000000000001b4000000000000000000200f20000000000000006000000000000002d000000000000002e000000000000002f0000000000000030000000000... InnoDB: End of page dump 2020-06-19 17:22:00 7f11c48e1720 InnoDB: uncompressed page, stored checksum in field1 1954074744, calculated checksums for field1: crc32 993334256, innodb 2046145943, none 3735928559, stored checksum in field2 1139795846, calculated checksums for field2: crc32 993334256, innodb 1606613742, none 3735928559, page LSN 0 254222157, low 4 bytes of LSN at page end 254221236, page number (if stored to page already) 5, space id (if created with >= MySQL-4.1.1 and stored already) 0 InnoDB: Page may be a transaction system page InnoDB: Database page corruption on disk or a failed InnoDB: file read of page 5. InnoDB: You may have to recover from a backup. InnoDB: It is also possible that your operating InnoDB: system has corrupted its own file cache InnoDB: and rebooting your computer removes the InnoDB: error. InnoDB: If the corrupt page is an index page InnoDB: you can also try to fix the corruption InnoDB: by dumping, dropping, and reimporting InnoDB: the corrupt table. You can use CHECK InnoDB: TABLE to scan your table for corruption. InnoDB: See also http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html InnoDB: about forcing recovery. InnoDB: Ending processing because of a corrupt database page.
* 这是由于系统崩溃或重启导致MYSQL恢复文件损坏而无法启动
解决办法:
1、编辑my.cnf(vim /etc/my.cnf),添加如下参数:
[mysqld] innodb_force_recovery = 1
2、再次启动mysql(此时可以启动成功,启动SHELL脚本示例如下:)
service mysql start
3、使用mysqldump备份数据库(示例SHELL脚本如下:)
mysqldump -uroot -proot dbName>db.sql
所有非系统数据库都得备份
4、删除备份的数据库(所有非系统数据库,示例SQL脚本如下:)
drop database dbName
5、关闭(注释)第一步的选项(参数),编辑my.cnf(vim /etc/my.cnf)
6、重新启动数据库(此时启动成功,代表恢复正常了)
7、恢复备份的数据库(示例脚本如下)
create database dbName; use cdbName; source /opt/db.sql;
* 至此已完成数据库的修复。总结一下,其实很简单:打开参数 > 启动数据库 > 备份数据 > 关闭参数 > 重启数据库 > 恢复数据
致读者:感谢你阅读本文,请随手点击右下角的推荐或分享,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?