登录
首页 >  数据库 >  MySQL

MySQL连接druid 报错:create connection SQLException

来源:SegmentFault

时间:2023-01-23 10:40:55 153浏览 收藏

在数据库实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《MySQL连接druid 报错:create connection SQLException》,聊聊MySQL,希望可以帮助到正在努力赚钱的你。

在SpringMVC+Spring+MyBatis整合应用中访问Mysql出现以下报错
具体报错:

19-Feb-2021 11:08:54.808 严重 [Druid-ConnectionPool-Create-1512829159] com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.error create connection SQLException, url: jdbc:mysql://localhost:3306/springdb, errorCode 0, state S1000
    java.sql.SQLException: Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
        at com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1734)
        at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3539)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2151)
        at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:776)
        at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1570)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1636)
        at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2505)

检查,查询mysql的版本发现本地的是8.0.22,更改maven的pom.xml文件的mysql驱动版本为8.0.22,刷新pom.xml,重新启动应用即可

   mysqlmysql-connector-java8.0.22

百度过程中还发现driverClassName有可能会报这个错,但是这里的不是这个原因

driverClassName: com.mysql.jdbc.Driver    # mysql-connector-java 5.x及之前版本中的
driverClassName: com.mysql.cj.jdbc.Driver # mysql-connector-java 6.x及后续版本中的

这里有一个疑问?

  1. driverClassName没配置应用也可以正常访问数据库,配置了也可以,这个是什么原理?

百度了暂时没找到为什么

  1. characterEncoding=UTF-8 加不加都可以

    
    

问题1:driverClassName没配置应用也可以正常访问数据库,配置了也可以,这个是什么原理?
有大佬指点可能是以下情况(未验证,先记录了后面有时间在验证吧)

  1. 在mysql的驱动jar中已经配置了

image
  1. 在com.alibaba.druid.pool.DruidDataSource配置的

image

image

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于数据库的相关知识,也可关注golang学习网公众号。

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表