电脑突然死机后mysql无法启动

电脑由于断电或其他原因死机,重新启动后,电脑里面的mysql服务无法正常启动,报数据不一致或者表空间列法找到等错误。此种情况下,通过如下步骤可正常恢复,亲测可用,环境为macOS, mysql5.7, InnoDB。

1. 修改mysql配置文件my.cnf,增加innodb_force_recovery = 5.

2. 试着启动mysql服务,若不能启动可将innodb_force_recovery的值设置为6,再试一下。mysql若能正常启动,则可采用此方案,否则需要采用其他办法。此种办法启动后的mysql属于只读模式,不能写入数据。

3. 使用mysqldump命令备份数据库,此命令可将实例中的所有数据库均备份:mysqldump -uroot -pxxx --all-databases > all.sql

4. 停止数据库,删除data目录(删除前最好备份,以防万一),使用mysqld --initialize命令重新初始化数据库。此命令运行成功后,控制台上会打出预设的root用户密码,需要记下此密码,后面登陆后需要先修改密码,才可以进行其他操作。

5. 删除my.cnf中的innodb_force_recovery参数,重新启动数据库,然后在命令行使用mysql -uroot -p,输入上步中得到密码登录数据。

6. 使用下述命令修改密码:

SET PASSWORD = PASSWORD('你的新密码');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

FLUSH PRIVILEGES; 

7. 恢复之前通过mysqldump备份的数据,执行mysql -uroot -p < all.sql

然后再登录数据库就可看到发生故障时的数据了,数据库恢复正常。

你可能感兴趣的:(电脑突然死机后mysql无法启动)