当前位置:   article > 正文

Java/DataGrip连接MySQL报错问题集锦_dbms: mysql (no ver.) case sensitivity: plain=mixe

dbms: mysql (no ver.) case sensitivity: plain=mixed, delimited=exact connect

概述

无论是通过JDBC程序,还是DataGrip客户端连接MySQL(很简单的配置用户名、密码、URL等信息),但,总是会遇到各种奇奇怪怪的问题。本文故此而生。

在使用DataGrip时,如果遇到奇奇怪怪的连接失败问题,不妨试试清除缓存重启,尤其是在连接若干个数据源,反复切换驱动版本
在这里插入图片描述

注:本文使用的DataGrip版本为:
DataGrip 2021.1.2
Build #DB-211.7442.38, built on May 31, 2021

问题

Java连接MySQL报错ArrayIndexOutOfBoundsException

JDBC程序报错信息如下:

Caused by: java.lang.ArrayIndexOutOfBoundsException: 24
	at com.mysql.cj.mysqla.io.Buffer.readLong(Buffer.java:284) ~[mysql-connector-java-6.0.2.jar:6.0.2]
  • 1
  • 2

后面的具体信息就省略掉;
经过分析,查找资料,定位原因是我本地安装的MySQL的版本是5.6,然后我在 pom.xml 文件里面配置 mysql-connector-java 的版本,如上所示 6.0.2。结果就报这种错误信息。如果把思维惯性放在数组越界,可能怎么都解决不了问题吧。

SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate).

DataGrip版本号为2021.1.2,待连接的数据源版本为8.0.18,使用的驱动版本为5.1.42,报错信息如下:

[2022-03-07 16:09:05] javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate).
  • 1

解决方案:

  1. 升级JDBC驱动版本到8.0+,如8.0.20
  2. 添加数据源级别的配置。

参考解决方案DataGrip-upgraded-to-2021-1-2-error-occurs-when-connecting-to-database-SSLHandshakeException

CLIENT_PLUGIN_AUTH is required

如图,DataGrip使用8.0.20版本的驱动。
在这里插入图片描述
连接一个数据源报错:

[08001] CLIENT_PLUGIN_AUTH is required
com.mysql.cj.exceptions.UnableToConnectException: CLIENT_PLUGIN_AUTH is required.
  • 1
  • 2

降低MySQL驱动版本,比如降到5.1.42版本可以连接成功。因为被连接的数据源版本太低:

DBMS: MySQL (ver. 5.0.95)
  • 1

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

使用的DataGrip版本号为2021.1.2,报错信息如下:

[S1009] java.lang.ClassCastException: class java.math.BigInteger cannot be cast to class java.lang.Long (java.math.BigInteger and java.lang.Long are in module java.base of loader 'bootstrap')
class java.math.BigInteger cannot be cast to class java.lang.Long (java.math.BigInteger and java.lang.Long are in module java.base of loader 'bootstrap').
  • 1
  • 2

问题根源:使用的mysql-connector-java.jar驱动jar包过于老旧。

我使用的版本号为mysql-connector-java-5.1.24.jar,换成mysql-connector-java-5.1.46.jar问题解决。当然直接使用mysql-connector-java-8.0.20.jar8.*版本,也能解决问题。

Unknown system variable ‘query_cache_size’

使用DataGrip 2021.1.2 + mysql-connector-java-5.1.42.jar驱动,连接MySQL数据源失败,报错信息:[HY000][1193] Unknown system variable 'query_cache_size'.

因为待连接的数据源的版本较高:

DBMS: MySQL (ver. 8.0.22-13)
Case sensitivity: plain=lower, delimited=lower
Driver: MySQL Connector/J (ver. mysql-connector-java-8.0.20 (Revision: afc0a13cd3c5a0bf57eaa809ee0ee6df1fd5ac9b), JDBC4.2)
  • 1
  • 2
  • 3

而驱动版本太低。

解决方案:
将驱动升级到版本8,比如mysql-connector-java-8.0.20.jar,即可。

参考

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/830977
推荐阅读
相关标签
  

闽ICP备14008679号