前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql 8.0 Druid连接时调用getServerCharset报空指针异常解决方法[通俗易懂]

mysql 8.0 Druid连接时调用getServerCharset报空指针异常解决方法[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-21 13:17:37
8580
发布2022-07-21 13:17:37
举报

大家好,又见面了,我是你们的朋友全栈君。

类似错误信息如下:

16:52:01.163 [Druid-ConnectionPool-Create-1641320886] ERROR com.alibaba.druid.pool.DruidDataSource – create connection error, url: jdbc:mysql://localhost:3306/jf?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

代码语言:javascript
复制
at sun.reflect.GeneratedConstructorAccessor26.newInstance(Unknown Source) ~[?:?]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_144] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_144] at com.mysql.jdbc.Util.handleNewInstance(Util.java:408) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.Util.getInstance(Util.java:383) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1023) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:997) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:983) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:928) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2576) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2309) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) ~[mysql-connector-java-5.1.32.jar:?] at sun.reflect.GeneratedConstructorAccessor23.newInstance(Unknown Source) ~[?:?] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_144] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_144] at com.mysql.jdbc.Util.handleNewInstance(Util.java:408) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:419) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344) ~[mysql-connector-java-5.1.32.jar:?] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1375) ~[druid-1.0.11.jar:1.0.11] at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1431) ~[druid-1.0.11.jar:1.0.11] at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1857) [druid-1.0.11.jar:1.0.11]

Caused by: java.lang.NullPointerException

代码语言:javascript
复制
at com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:3299) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1967) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1893) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1287) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2494) ~[mysql-connector-java-5.1.32.jar:?] at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2527) ~[mysql-connector-java-5.1.32.jar:?] ... 12 more

网上未解决该问题,经排查,使用mysql connector 8版本,问题即解决。所以应该来说是mysql驱动版本的问题。

8.0在驱动器类和连接串上有些变化如下:

jdbc.driverClassName=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/k3c?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/107523.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档