MySQL升级到8x版本遇到的问题(5个异常及其解决办法)

异常1

java.sql.SQLException: java.lang.ClassCastException:java.math.BigInteger cannot be cast to java.lang.Long

  • 一般原因: MySQL版本升级,但项目中jar包依然是旧版本(若你没升级过且刚刚还好好的,那就应该是代码错误)。
  • 解决办法: 在maven中配置引入依赖包,其中version采用所安装MySQL对应版本(或再新点的版本,因为有些人是要比其安装的版本新一点才有用)。

附:利用mysql命令查看版本:mysql> select version();

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.21</version>
</dependency>

如果还不行,就说明项目还是没有找到引入的新版本jar包,那就检查一下数据库配置文件,这是5升级到6以上版本要注意的变化:
MySQL5用的驱动是com.mysql.jdbc.Driver,MySQL6以后用的是com.mysql.cj.jdbc.Driver,且需要指定时区serverTimezone,指定是否需要使用SSL连接。

Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false";
String username = root
String password = 123456
Connection conn = DriverManager.getConnection(url, username, password);

如果设定serverTimezone=UTC,会比中国时间早8个小时,在中国可以选择GMT%2B8或者Asia/Shanghai或者Asia/Hongkong;
设置useSSL=false来显式禁用SSL连接,如果需要用SSL连接,要为服务器证书验证提供信任库,并设置useSSL=true。

异常2

java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password’.

这个问题是因为mysql 8.0 默认使用 caching_sha2_password 身份验证机制,从原来的mysql_native_password 更改为 caching_sha2_password。这还是说明没有真正使用到新jar包导致。

异常3

java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/Driver : Unsupported major.minor version 52.0

如果还不行,就要考虑JDK的版本兼容问题,检查一下项目使用的jdk版本。


查了一下MySQL官网,显示MySQL8需要jre8及以上版本支持,那如何升级jdk呢?




异常4

WebLogic Server v12.x supports J2EE 1.2, 1.3, 1.4, Java EE 5 and 6

补充:若是原本使用WebLogic Server v12.x,则要改用tomcat,前者不支持jdk8。

异常5

java.sql.SQLException: No suitable driver found for jdbc…

如果还不行,尝试着将mysql-connector-java-xxx.jar的jar包加入C:\Program Files\Java\jre1.8.0_121\lib\ext文件夹下,应该需要将该jar包加入到java运行环境的外部jar包中。 问题基本就解决了。

MySQL升级到8x版本遇到的问题汇总相关推荐

  1. 实战MySQL升级的最佳方法

    这篇文章给大家从理论到实战详细分享了MySQL升级的最佳方法,有需要的朋友跟着学习操作下吧. MySQL5.7新增了不少新功能,比如:Online DDL.多源复制.增强半同步.表空间传输.sys 库 ...

  2. MySQL升级的最佳实践

    2019独角兽企业重金招聘Python工程师标准>>> 前言 MySQL5.7新增了不少新功能,比如:Online DDL.多源复制.增强半同步.表空间传输.sys 库.Group ...

  3. Mac卸载mysql并安装mysql升级到8.0.13版本

    引言 今天mysql升级到8.0.13版本,遇到了很多问题,在此进行总结方便以后查看. 卸载mysql brew uninstall mysql sudo rm /usr/local/mysql su ...

  4. ubuntu 14.04 mysql 5.7_ubuntu14.04 升级mysql到5.7版本

    Ubuntu14.04默认安装的是mysql5.5,由于开发需要支持utf8mb4,因此需要升级到mysql5.7 默认情况下,apt是无法直接升级到mysql5.7的,因此需要额外设置 首先,备份数 ...

  5. brew安装mysql 卸载_Mac卸载mysql并安装mysql升级到8.0.13版本

    引言 今天mysql升级到8.0.13版本,遇到了很多问题,在此进行总结方便以后查看. 卸载mysql brew uninstall mysql sudo rm /usr/local/mysql su ...

  6. 荣耀8x显示无法连接到服务器,华为荣耀8X手机升级更新217版本系统后经常显示无网络连接...

    这个华为荣耀8X手机升级更新217版本的系统后经常显示无网络连接,也就是升级后移动网络断流严重,不知道是手机的问题还是系统的问题,升级217两天发现,移动网络断流严重,有4G信号,但是经常显示无网络连 ...

  7. mysql数据库可以升级吗_[数据库]MySQL升级

    [数据库]MySQL升级 0 2016-08-16 22:00:18 MySQL的升级相对来说还是比较简单的. 它支持两种方式的升级: 原地升级(In-place Upgrade) 关闭数据库,替换旧 ...

  8. mac找不到mysql数据库_mac下mysql升级后找回丢失数据库

    昨天把mac上的mysql升级了,之前没做备份,安装完后用navicat打开以前的数据库不在了.这下悲催了. 看了官网的说明,以前的数据库文件还存在于旧的安装目录下 (/usr/local/mysql ...

  9. mysql升级回退_Mysql 升级、用户与授权,

    #自动提交:5.6版本开始   默认自动提交 #autocommit = 0 升级 1. mysqldump (一般不用这种方式):由于4.0-->4.1  数据文件不兼容,才使用此方式: 2. ...

最新文章

  1. Mother's Day
  2. php 邮件发送是html 没样式_使用python发送邮件
  3. mac 源生安装mysql_Django执行源生mysql语句实现过程解析
  4. 人民币 小写金额转换为大写金额
  5. 远秋规培系统服务器地址,远秋住培管理系统
  6. 凭什么它能成为报表神器?这五大技术硬货不得不服
  7. android targetapi版本低,Android应用开发之Android @TargetAPI版本兼容性解析
  8. 基本文件上传漏洞攻击实验
  9. 图像处理——乘性噪声和加性噪声
  10. 免费备案查询API,支持通过主办单位名称查询备案信息
  11. VMware安装Linux教程
  12. 坚持写博客,以身说法——我与CSDN的1234
  13. 真的存在“对事不对人”吗?
  14. 普通索引 唯一索引 主键索引 组合索引 全文索引
  15. Gmail账号申诉成功
  16. 挑选微信h5开发制作公司的标准是什么?
  17. 如何整合润乾报表到spring boot项目
  18. 山大青岛计算机学院郑雯,山东大学自招700余人过线 面试将刷掉20%考生
  19. Python利用经纬度创建shpfile点图层并生成tif-问题
  20. SQL Server 数据库备份还原和数据恢复

热门文章

  1. 【图像重建】基于正交匹配追踪(OMP)算法结合小波变换是图像重建含Matlab源码
  2. R语言 平均值,中位数和模式
  3. 华为mate10可以用鸿蒙吗,可升级到鸿蒙2.0的四款华为手机,在用的恭喜了
  4. vue的$emit 与$on父子组件与兄弟组件的之间通信
  5. ssl2340 格子游戏
  6. python roc计算_ROC评价指标最全攻略及Python实现
  7. 谭浩强C语身教程第一章---C措辞概述(2)
  8. 苹果微信更新不了最新版本_微信,最新版本更新,为何要将字体变小
  9. CCS5.5.0资源及license(免费下载)
  10. MT7621基于OpenWrt 21.02使用DSA配置VLAN