运行“mysqld - -console ”命令可以显示出启动错误信息。
问题原因
数据库中表损坏导致数据访问错误,从而导致数据库崩溃;mysql中check table 发现表有损坏,但表是innodb类型不能修复。
Innodb 自检过程中checksum与退出时不一致便会去recover;
问题解决1、知道mysql配置文件,my.cnf。
添加下面内容:
再启动mysql
则可以正常启动。
2、寻找到出错的表。
本人利用Navicat连接mysql服务器。
查看所有表,其中发现
3、将这两个表导出成mysql文件。
再将这两个表删除。
复制mysql文件中的建表语句。由此新建两个与之前结构一样的表,但是存储引擎设置为MYISAM。
将mysql文件中的错误的那条语句删除。
将其他正常数据导入到数据库。
4、关闭mysql服务器。
将最开始添加的
innodb_force_recovery=1删除。
重启mysql服务器。
将MYISAM引擎的两个表改为innodb。
(Navicat中,设计表->选项->innoDB->保存)
结束。
原链接:https://www.aliyun.com/jiaocheng/148461.html