在使用MySQL驱动进行JDBC时候出现了以下异常

Exception in thread "main" 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: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:408)at com.mysql.jdbc.Util.getInstance(Util.java:383)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1023)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:997)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:983)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:928)at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2576)at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2309)at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)at com.mysql.jdbc.JDBC4Connection.<init>(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:408)at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:419)at com.mysql.jdbc.NonRegisteringDriver.connect(Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
Exception in thread "main" java.sql.SQLException: 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 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)at java.sql.DriverManager.getConnection(DriverManager.java:664)at java.sql.DriverManager.getConnection(DriverManager.java:247)
.java:344)at java.sql.DriverManager.getConnection(DriverManager.java:664)at java.sql.DriverManager.getConnection(DriverManager.java:247)

看异常好像是无事务连接异常,无法创建连接。我在另一个电脑上是没有这个异常的,也就在我这台电脑上才遇到了。猜想可能是MySQL版本和驱动包不兼容的问题,所以将MySQL驱动改为了最新的8.0版本的MySQL驱动,但是又出现了下面的错误

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
Exception in thread "main" java.sql.SQLException: 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 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)at java.sql.DriverManager.getConnection(DriverManager.java:664)at java.sql.DriverManager.getConnection(DriverManager.java:247)

显示是说我用的那个驱动类已经过时了,新的驱动类是“com.mysql.cj.jdbc.Driver”,而不是“com.mysql.jdbc.Driver”了,并且还说我没有配置时区,查了一下,原来从JDBC6.0开始驱动类使用了新的,并且url中必须要设置时区,否侧会报错。那按照规定改就行了。
所以,总结起来就三步:

第一步:使用最新的MySQL驱动jar包。
第二步:把驱动的类名改为:
static String driver="com.mysql.cj.jdbc.Driver";
第三步:在访问mysql的url后加入时区设置:
static String url="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&serverTimezone=UTC";(UTC表示标准时区)

这样,就可以开开心心的访问MySQL数据库了。

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException异常解决方法相关推荐

  1. 启动项目出现com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException异常解决方法

    启动SpringBoot项目失败mysql连接错误 2020-03-21 20:16:25.193  INFO 8204 --- [           main] com.cnadmart.ApiA ...

  2. Mysql连接问题:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establish ...

  3. Maven项目中:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create conn

    报错信息 详细信息 ERROR [Druid-ConnectionPool-Create-2074541388] - create connection error, url:jdbc:mysql:/ ...

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

    困扰了我两天的异常 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create con ...

  5. 【DEBUG】com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Client does not support

    项目场景: 使用 Spring SpringMVC Mybatis 进行整合SSM的过程中,声明一个声明式事务的查询服务,发现无法使用. @Service public class EmpServic ...

  6. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not?

    问题 :连接MySQL数据库时抛出异常信息: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public ...

  7. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:异常问题解析!

    首先遇到这样的问题,肯定是你的sql写错了,应该不用怀疑,虽然我把sql代码抽取出来在sql 单独运行了一遍,没有报错,但是还是sql语法的错误,下面先上错误的代码 <select id=&qu ...

  8. MySQL报错:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException

    一.原因分析 原因1:环境配置方面 MySQL版本与驱动版本不匹配.如:MySQL8.0 (8.0版本)搭配 mysql-connector-java-5.1.37.jar(5.0版本) 原因2:代码 ...

  9. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException异常产生的原因及解决办法

    SQL语句错误: 注意SQL语句格式是否正确: 注意SQL语句的符号是否是英文(误写成中文符号): 注意SQL语句拼接时,内容前后是否缺少空格,以保持SQL语句的正确性:

最新文章

  1. java实现遍历树形菜单方法——HibernateUtil实现
  2. 公有云 --- 华为云的基本运用
  3. matlab c++ 符号变量问题
  4. C语言程序项目计划书,(C语言程序设计课程设计计划书.doc
  5. keil p0 0c语言不了,Keil C51对C语言的关键词扩展之十三: sfr
  6. Asp.net MVC 示例项目Suteki.Shop分析之---IOC(控制反转)
  7. git 基于master分支 创建其他本地分支,并关联
  8. 第34届越秀区青少年科技创新大赛_创客集结号上报名已开始啦
  9. 微信加人:你需要了解的规则
  10. mac 批量删除word中的空白行
  11. excel制作折线图
  12. Linux常用命令:系统信息、关机重启、文件和目录操作、文件搜索、文件权限、挂载、磁盘空间、用户及群组、解压缩、备份等操作。
  13. spring-boot2 + vue2+ element-ui2 + avue 通用架构 xijia-plus (兮家 plus)
  14. 互联网晚报 | 6月28日 星期二|​ QQ回应大规模账号被盗;iPhone 14系列新机最快8月初量产;微信表情符号写入判决...
  15. Rust语言正在兴起,Java、Python、C的末日来临?
  16. Ubuntu清理系统垃圾 命令
  17. 手机电脑同步投屏演示工具-Wormhole
  18. ceph pg不一致问题
  19. C++超轻量限流器实现
  20. Real-ESRGAN笔记

热门文章

  1. 【产品推荐】安科瑞AMC200多回路智能电量采集监控装置
  2. 计算机怎样将多行文字转换成表格,如何将Word表格多行内容转成一列的技巧
  3. 最近分享一款抖音上很火的七夕节程序员表白页面_html5七夕表白放烟花动画特效...
  4. ASEMI整流桥GBJ406参数,GBJ406尺寸,GBJ406机械数据
  5. win10查看笔记本电池健康度
  6. .在下列计算机应用项目中,属于数值计算应用领域的是,计算机应用基础复习资料...
  7. 因为计算机+qtcf.dll,nuke入门:节点的插入、复制、克隆、组织和视图面板
  8. SAP UI5 智能控件 Smart Controls 的初步认识试读版
  9. PHp国际象棋盘,PHP实现国际象棋之跳马程序的示例代码
  10. 【完全不同的解决方案】no Qt platform