情景:
(不备份,直接点击mysql进行更新,这里更新后结果为更新成功,目前20230324日版本已经是8.0.32,但是可能我之前的同事或者谁点了更新,但是,没有重启。此刻我开始配置mysqly优化,我以为配置优化不会出问题
这里开始选择。后面保存,保存成功,然后我去重载配置,重启mysql,
提示为重启失败。我关闭数据库,在命令行重启,报错。
信息为:
不能更新open mysql 文件的pid;
然后找到日志
[InnoDB] InnoDB initialization has started.
2023-06-23T03:22:06.096002Z 1 [ERROR] [MY-013171] [InnoDB] Cannot boot server version 80024 on data directory built by version 80026. Downgrade is not supported
这下在这里砸开了。。。。。。。。。
问题解决
由于mysql8.0之后版本使用
MYSQL在升级的时候,会出发upgrade,这个东西会转换MYSQL的data数据。想到这里就完蛋了。
网上到处找资料,有资料说mysql的data文件搜索inodb损坏,需要修复inodb,有事一顿操作(此时我已经备份data,文件夹)
使用过的命令和操作如下:
、使用innodb_force_recovery
修改 vim /etc/my.cnf[mysqld]
innodb_force_recovery = 1
如果使用innodb_force_recovery = 0(1-6参数),数据库服务未正常启动,继续往下看innodb_force_recovery 参数说明:MySQL :: MySQL 5.7 Reference Manual :: 14.22.2 Forcing InnoDB Recovery
2、通过.ibd和.frm恢复数据
3、删除.idb
以上操作对我无效。
这下破防了,估计mysql数据损坏了。此刻已经找专业机构准备数据恢复了,然后发现10多个数据库,需要上千元。这下估计跑路了。
最后硬着头皮找到吊哥:
操作如下:(主要直接跳过8.0.26 看数据库能否修复版本问题)
1,备份好mysql目录,备份好server/data 目录。
2、卸载mysql(使用安装包安装无法安装)
3、编译安装
4、替换目录,然后进行一系列操作,这里看花了眼。
(需要自己学习下)
5、重启mysql
总结:
升级数据库:一定要备份:切换数据库也要备份,更新完数据库一定要重启,或者重载。我那问题宝塔的数据库都到8.0.32了,哪里更新出的8.0.26?????????一定使用宝塔更新后得重载,或者重启,让服务当时生效。宝塔的定时备份任务一定得开启。