服务器断电导致DIP mysql损坏恢复步骤
现象:mysql损坏,无法正常启动,一般出现在断电后,查看mysql日志里面有类似如下图报错,mysql文件损坏,建议修改innodb_force_recovery = 1
出现以上情况,说明mysql已经损坏,无法正常使用;
解决办法:一般解决方案是dump下mysql里面的数据,重新安装mysql,再将数据导入回去,因为这部分的dump数据只有业务库,所以导致会丢失mysql用户,这块需要提前确认好,在DIP的案例中,可以不用考虑这块,因为DIP的数据库一般只给DIP用,所以咱们只需要dump出tiji_dip的库数据即可
1、找到DIP的mysql的my.cnf文件(标准位置:/home/seekcy/tiji-dip/mysql/conf/my.cnf)
#进入目录cd /home/seekcy/tiji-dip/mysql/conf/#修改配置文件vi my.cnf
2、如图在[mysqld]下面增加一行,这里的值,可以从1~6逐渐递增修改,值越大,就是mysql忽略的校验越多,启动的可能性越大。
innodb_force_recovery = 5
3、重新启动mysql
sudo docker restart dip-docker-compose-mysql-1
4.启动完成后,执行mysqldump备份数据库
mysqldump -uroot -h127.0.0.1 -p”A^jNA*&s” -P46306 –databases tiji_dip > /home/seekcy/tiji_dip_bak.sql
编辑备份下来的sql文件,确认里面有数据,防止空文件
vi tiji_dip_bak.sql
5.完整的卸载DIP,再安装一个一样的DIP版本
不知道版本的,可以使用docker ps -a,查看dip的镜像tag,这里的DIP就是v1.4.1的版本
6.卸载后,可以安装V1.4.0然后再升级到V1.4.1
7.导入刚备份的sql数据
#先停止dip程序docker stop dip-docker-compose-tiji-dip-1#再导入备份数据mysql -uroot -h127.0.0.1 -P46306 -p"A^jNA*&s" tiji_dip < tiji_dip_bak.sql#再启动dip程序docker start dip-docker-compose-tiji-dip-1
转载请注明作者和出处,并添加本页链接。
原文链接:
//svn.seekcy.com/822