讲⼀讲mysql5.6升级到mysql8.0之后,遇到的常规问题以及⾮
常规问题的解决⽅案
这个问题解决有⼀段时间了,但是想想解决时遇到的各种喜悦与绝望,觉得还是挺值得记录下来的。
上个星期,⽼板(也是技术出⾝)决定要使⽤mysql 8.0 的json函数来操作数据,于是他去⽹上下了个mysql 8.0⽰例,将原来mysql5.6 的数据移植到了新的8.0数据库中,解决了外部访问8.0数据库的权限问题后,就把接下来的与原项⽬的整合问题交给我了。作为⼀个热⾎的开发新⼿,⽼板交下来的任务,我总是很愉快的去解决的。⾸先需要说明,公司的项⽬有四个,四个项⽬使⽤的都是同⼀个数据库,其中有两个项⽬是标准的maven⼯程,⼀个项⽬Java web动态⼯程,还有⼀个项⽬是普通的Java⼯程。
开始的时候,我也通过百度查了很多博客,然后参考这篇博客: ,强制更新了maven版本库,发现这两个maven项⽬很爽快的就跑起来了。另⼀个Java动态⼯程,依照前⾯两个⼯程的修改步骤,也能正常连接和使⽤。但是到了最后⼀个 普通的Java⼯程时,套路就不管⽤了。
如下图,我的数据库驱动原来是 1.0.15 的,后来提⽰报错,现在升级到1.1.10:
mysql驱动也升级到了8.0.11,如下图:
配置⽂件也做了修改:
#测试(mysql 8.0)
jdbc.url=jdbc:mysql://你的ip:8080/mydb?useUnicode=true&characterEncoding=utf-8&serverTimezone=Hongkong&useSSL=false
jdbc.username=root
jdbc.password=10086
还有驱动地址也改了:
mysql下载jar包但是好死不死,控制台还是打印错误了,说的是⽆法创建bean对象:
被卡了很久,试了很多⽅法,包括更改了本地jdk的版本,不管是升级到jdk1.7 还是 使⽤1.8 ,都依旧报错,⼏乎要绝望了。后来我冷静分析了起来,⾸先确定我前⾯两个maven项⽬和⼀个java web⼯程都是可以跑起来的,原来的四个项⽬⽤的都是jdk1.7,都跑在同⼀个eclipse上,所以不会是jdk版本的问题。然后再看mysql的配置⽂件,也是直接copy过来的,也没有问题,⽽mysql相关的jar包,都是从那三个能正常跑起来的项⽬中拷贝过来的,所以也不会是引错mysql的jar包导致的。然后再看这个报错,复制这个错误虽然⽆法直接百度到答案,但是从错误上来看,⼤概意思是创建某些bean 对象时失败了,也就是这个错误是和spring相关的错误,然后我突然想到,会不会是和spring的jar包的版本有关。我于是将这个普通java项⽬⾥spring相关的jar包都换成了其它三个能够正常运⾏的项⽬⾥的jar包版本。如下图:
原来普通java项⽬⾥spring⾥jar包版本如下:
其它三个能正常运⾏的项⽬的jar包版本如下:
替换成功后重新build-path,点击运⾏,发现错误就变成了:“java.lang.UnsupportedClassVersionErro
r: com/mysql/cj/jdbc/Driver : Unsupported major.minor version 52.0”:
百度了⼀下,发现是我的jdk编译器版本太低了,于是使⽤了jdk1.8,操作如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论