如题:
核心思路,升级前记得备份,备份,备份……
遗憾的是我没有备份,一个启动的配置文件带到新版本mysql,直接毁掉原来的ibdata1文件,然后经过各种尝试,总算找回数据!!!
下面就是心路历程:
由于旧版本数据导出导入存在bug,个别特殊性质的数据没有办法导入或者导入不方便,所以产生了升级的念头,于是乎下载了5.7版本,一顿操作直接启动,启动的时候指向了原来的data目录,当时看着屏幕的日志提示,一顿懊悔,可是已经启动没有回头路,就让它走到最后,然后5.7版的数据库启动不起来。
带着侥幸的心理,回去用5.5版启动,然后也是B悲催,
最后通过官方的文档,看到了一些提示,说ibdata1是数据的索引信息,而文件夹的数据库存有的是数据信息,所以就想到,索引会不会是被5.7升级了,所以才会不兼容,
1,于是新建了一个5.7new版本初始化启动,不依赖之前的data,用命令初始化 并启动。然后产生对应的ib_logfile0,ib_logfile1以及对应的文件,接着关闭命令行。
2,把之前被5.7升级过的ibdata1文件(源5.5里面的文件)以及对应的非系统数据库(也就是以前我们新建的)拷贝过来5.7,然后启动
3,有惊喜有木有,然后终于打开了对应的所有表,当然,好在没有太多的用户信息,权限信息,直接就可以使用
4,然后命令行还是提示一些乱七八糟的信息,对于有强迫症的程序员而言,这是不可忍受的,就重新新建了一个数据库并把刚刚的数据拷贝并导入新的数据库,算是彻底解决了这个问题!
所以,猿人们,想自行升级的时候要小心,不要贪图方便把之前的ini文件拷贝完事,会很危险滴……虽然这两个版本还可以通过这个方式拯救,但是还是别再其他版本冒这个险为好!!!
博主分享了一次从MySQL 5.5升级到5.7版本的亲身经历,强调了升级前备份的重要性。由于未备份,导致ibdata1文件损坏,经过一系列尝试,最终通过重建5.7版本、迁移数据和索引文件成功恢复数据。
1485

被折叠的 条评论
为什么被折叠?



