讲一讲mysql5.6升级到mysql8.0 之后,遇到的常规问题以及非常规问题的解决方案

这个问题解决有一段时间了,但是想想解决时遇到的各种喜悦与绝望,觉得还是挺值得记录下来的。

上个星期,老总决定要使用mysql 8.0 的json函数来操作数据,于是去网上下了个mysql 8.0示例,将原来mysql5.6 的数据移植到了这个数据库,解决了外部访问数据库的权限问题后,就把接下来的与原项目的整合问题交给我了。老板交下来的,我总是很愉快的去解决的。公司的项目有四个,其中有两个是标准的maven工程,参考这篇博客:  https://blog.csdn.net/zdf19931993/article/details/51307543  ,强制更新了maven版本库,发现这两个项目很爽快的就跑起来了。还有一个java动态工程,依照前面两个工程的修改步骤,也能正常连接和使用。但是到了最后一个 普通的java工程时,套路就不管用了。

如下图,我的数据库驱动原来是 1.0.15 的,后来提示报错,现在升级到1.1.10:

mysql驱动也升级到了8.0.11,如下图:

配置文件也做了修改:

还有驱动地址也改了:

但是好死不死,控制台还是打印错误了,说的是无法创建bean对象:

想了好久,试了很多方法,包括更改了本地jdk的版本,不管是升级到jdk1.7 还是 使用1.8 ,都依旧报错。在网上也找了很久,都没有找到解决方案,几乎要绝望了。后来我冷静分析了起来,首先确定我前面几个项目是可以跑起来的,前面的项目用的也是jdk1.7,这些项目都在同一个eclipse上,所以不会jdk版本的问题。然后在看mysql的配置文件,也是直接copy过来的,也没有问题,而jar包,则是直接从其他项目移植过来的,也不会有问题。然后在看这个报错,直接copy这个错误虽然无法百度找到答案,但是从错误上来看,应该是和spring相关的错误,然后我突然想到,会不会是和springjar包的版本有关。我于是将这个项目里spring相关的jar包都换成了其它能够正常运行的项目里的jar包版本。如下图:

原来项目里spring里jar包版本如下:

更高版本的jar包如下:

替换成功后重新build-path,点击运行,发现错误就变成了:“java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/Driver : Unsupported major.minor version 52.0”:

百度了一下,发现是我的jdk编译器版本太低了,于是使用了jdk1.8,操作如下:

至此,问题解决。

mysql5.6 升级到mysql8.0后的相关修改网上有很多博客,但是却没人说过 这个mysql驱动包升级后,可能该项目里其它的jar包也会受影响,原来mysql5.6加上5.6的驱动时,我原来的项目能跑,因为刚好与spring的版本兼容,大家都是底层老百姓,也就是都穷,谁也没资格瞧不起谁,所以可以愉快的一起玩耍。但是突然有一天,mysql 5.6 升级到了8.0了,于是我们很自然的会把目光放到mysql的驱动是否兼容上,就算有其它问题,也是会往msyql那方面想,但是却忽略了以前的穷兄弟 spring依旧还很穷,说白了大家不再是一个圈子里的人,没办法再在一起玩。要想一起玩,就得把spring的jar包也给升级了,这样大家又都到了同一个圈子,就能继续一起玩耍了啊。

猜你喜欢

转载自blog.csdn.net/weixin_43814195/article/details/84996625
今日推荐