用了景安的一个测试服务器,前两年的时候他们说要架构升级要换IP,我不允许换,就一直拖着,今天他们给我说可以不换IP了,我说那可以啊,就开始吧。然后他们升级完毕,发现Mysql启动不了,提示服务启动后停止之类的。于是我查资料,看有个人让执行mysqld –initialize,但是不管用。

后来只好想办法通过Data目录恢复数据,先把整个Data目录备份,然后重新安装了Mysql,然后把Data目录替换,发现仍然启动不了。于是就删除了ibdata1文件与ib_logfile0、ib_logfile1三个文件,就可以重启了。但是发现自己的数据库能看见表名,就是看不到数据,说明ibdata1文件是必不可少的,于是单独把ibdata1复制过来,把那两个删除了,发现还是不行。就去看.err文件的错误日志,看到了Mysql建议看这个链接
https://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html

把 配置文件种一个设置 innodb_force_recovery 改为6之后,终于可以启动了。但是这时候Mysql是只读的状态,还好,可以导出成SQL,再导入就行了。

先用命令mysqldump –all-databases > all.sql导出,然后将
innodb_force_recovery 改为1之后重启MYSQL,把各种数据表的同名目录删除,再把ibdata1,ib_logfile0,ib_logfile1都删除,重启Mysql,会自动创建这三个文件,再执行mysql < all.sql就可以还原数据库。

以后遇到错误还是不要急着去重装,应该先从错误日志找原因。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据