com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to...

昨天在自己电脑上连接mysql启动web程序时,报出一些错误:

2018-09-17 16:30:28 ERROR DruidDataSource:646 : dataSource init error
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
 at com.mysql.jdbc.Util.getInstance(Util.java:360)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870)
 at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2311)
 at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064)
 at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:790)
 at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:377)
 at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395)
 at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
 at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:148)
 at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:211)
 at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142)
 at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1377)
 at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1431)
 at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:618)
 at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:915)
 at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:911)
 at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:98)
 at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseProductName(VendorDatabaseIdProvider.java:82)
 at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseName(VendorDatabaseIdProvider.java:66)
 at org.apache.ibatis.mapping.VendorDatabaseIdProvider.getDatabaseId(VendorDatabaseIdProvider.java:53)
 at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:445)
 at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:336)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
 at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
 at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
 at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)
 at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:648)
 at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:140)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
 at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
 at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
 at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
 at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:512)
 at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:486)
 at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:615)
 at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169)
 at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
 at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
 at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
 at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
 at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
 at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
 at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
 at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
 at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
 at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
 at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
 at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
 at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812)
 at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255)
 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
 at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
 at java.util.concurrent.FutureTask.run(FutureTask.java:262)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
 at com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:2983)
 at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1873)
 at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1802)
 at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1206)
 at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2234)
 at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265)
 ... 72 more

(1)首先经过分析,以为是本机开启了防火墙,检查后,没有开启防火墙,并且通过navicat等工具可以连接,所以排除此原因;

(2)然后在网上搜索了一下,发现有网友遇到类似问题,代码都没有改动,之前连接测试数据库和生产数据库都没有问题,但是连接本机新装的mysql,

可能是本机mysql和测试环境的mysql版本不一致,经过查看,果然是这样,我之前用的是5.1.43的jdbc连接jar包,但是本机装的mysql是8.0.11,横跨了好几个大版本呢,修改后,再次重启程序,但还是报错!

(3)最后查看8.0.11的jar包里的driver.class有这么一句话,可能有的网友会直接报出这个提示:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver',修改后,再次启动,这次报错新的错了:关键字是The server time zone value

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value '???ȲȺ????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
 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.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:59)
 at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:83)
 at com.mysql.cj.util.TimeUtil.getCanonicalTimezone(TimeUtil.java:128)
 at com.mysql.cj.protocol.a.NativeProtocol.configureTimezone(NativeProtocol.java:2201)
 at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2225)
 at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1391)
 at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:993)
 at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:852)
 ... 65 more

(4)参考了网友的提醒,在配置mysql的连接url时需要添加:&useSSL=false&serverTimezone=UTC,再次重启程序,成功了!

 

希望能对遇到类似问题的园友有所帮助!

 

补充一点:mysql版本8,需要jdk8以上进行编译!

 

转载于:https://www.cnblogs.com/geidianmianzi/p/9667453.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientconnectionexception: 无法创建到数据库的连接。 这个错误通常是由于以下原因之一引起的: 1. 数据库服务器已经关闭或无法访问。 2. 数据库连接池已满,无法创建新的连接。 3. 数据库连接参数配置错误,例如用户名、密码、主机名、端口等。 解决这个问题的方法包括: 1. 检查数据库服务器是否正常运行,并确保可以访问。 2. 增加数据库连接池的大小,或者使用更高效的连接池。 3. 检查数据库连接参数配置是否正确,例如用户名、密码、主机名、端口等。 ### 回答2: com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientconnectionexception: could not create connection to 是一个MySQL数据库连接错误的异常。该异常意味着在建立连接时遇到了问题。 出现这个异常的原因可能有以下几种情况: 1. 数据库服务器未启动:检查数据库服务器是否正在运行,并确保数据库服务器已启动。 2. 连接参数错误:检查数据库连接参数是否正确,包括数据库的主机名、端口号、用户名和密码等。 3. 连接超时:如果连接数据库的时间超过了预定的超时时间,就会出现这个异常。可以尝试增加连接超时时间来解决问题。 4. 数据库连接数达到上限:如果数据库连接数已经达到了上限,再次尝试建立连接时就会出现这个异常。可以尝试增加数据库连接数的上限或者释放一些闲置的连接来解决问题。 解决这个异常的方法可以有以下几种: 1. 检查数据库服务器状态,并确保数据库服务器已经启动。 2. 检查连接参数,确保参数设置正确。 3. 增加连接超时时间,可以在连接字符串中设置连接超时时间。 4. 增加数据库连接数的上限,可以在数据库的配置文件中修改连接池的配置。 总结:com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientconnectionexception: could not create connection to 是一个数据库连接错误的异常,在处理时需要仔细检查数据库服务器状态、连接参数、连接超时和连接数等问题,并针对具体情况采取相应的解决方法来解决该异常。 ### 回答3: com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientconnectionexception: could not create connection to 是一个MySQL数据库连接异常的错误消息。这个错误通常表示在尝试连接到MySQL数据库时发生了问题。 造成这个错误的原因可能有几种。首先,可能是由于网络问题导致无法连接到MySQL数据库。这可能是由于网络连接不稳定或服务器故障引起的。您可以尝试使用其他网络连接或联系数据库管理员进行故障排除。 其次,可能是由于MySQL数据库的配置错误导致连接失败。这可能包括错误的用户名、密码或数据库名称等。您可以验证这些参数是否正确,并确保数据库正确地配置了允许远程连接。 另外,这个错误还可能是由于数据库连接池达到了最大连接数限制而导致的。当数据库连接池中的连接数达到最大时,新的连接请求将无法创建。您可以调整数据库连接池的最大连接数设置,或通过关闭未使用的连接来释放连接。 最后,这个错误还可能是由于数据库服务器不可用或已关闭引起的。您可以确认数据库服务器是否正在运行,并检查是否有其他相关问题或错误消息。 总之,com.mysql.jdbc.exceptions.jdbc4.mysqlnontransientconnectionexception: could not create connection to 指的是在连接MySQL数据库时出现了问题。您可以通过检查网络连接、验证数据库配置、调整连接池设置和确认数据库服务器是否可用来解决这个错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值