前言
Mysql 因断电引起数据库崩溃启动失败修复方法
会恢复大部分数据,一小部分因为文件损坏会丢失,日常备份的话数据丢失量会更小。
- 环境说明
- CentOS 6.5
- Mysql 5.7.22
一、修改启动方式
- 修改 MySQL 启动方式为恢复模式,修改 /etc/my.cnf,
- 添加innodb_force_recovery=6 这一行,然后重新启动MySQL,这个模式下只能读取数据库中没有受到影响的数据,不能做删除修改操作。
vim /etc/my.cnf
innodb_force_recovery=6
二、备份数据
用 Navicat 备份数据库数据,因为会有一些数据损坏会读取不了,所以不要启用事务。
三、备份数据文件
- 停止数据库服务
- 备份文件,直接把MySQL目录移动到备份文件夹,改名日期。
mv new_mysql ./mysqldata/20190327
四、初始化数据库文件夹启动
mysqld --initialize-insecure --user=mysql
service mysqld start
五、修改密码
mysql -uroot -p
SET PASSWORD = PASSWORD(123456);//123456不用改
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
六、恢复数据
- 把之前备份的数据库恢复即可
七、异常问题
- 初始化完成启动失败Starting MySQL... ERROR! The server quit without updating PID file
- ①权限 chown -R mysql.mysql /home/myslq
- ②执行 chcon -R -t mysqld_db_t /home /mysql