参见英文答案 Can’t connect to MySQL from Java: NullPointerException inside MySQL driver connection logic 2个我是数据库中的新手,刚开始学习它们.我有MySQL Server 8.0...

参见英文答案 > Can’t connect to MySQL from Java: NullPointerException inside MySQL driver connection logic 2个
我是数据库中的新手,刚开始学习它们.我有MySQL Server 8.0.,Workbench 8.0,Java连接器5.1.31,Java 1.8本身.为新手如何开始遵循多个指南.
有这样的情况.我在localhost上有数据库,并通过workbench和windows提示符成功连接到它.但是在我执行java代码之后:
Driver sqlDriver = new FabricMySQLDriver();
DriverManager.registerDriver(sqlDriver);
Connection sqlConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/?user=root", "root", "root");
我得到异常com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建与数据库服务器的连接.
为什么会发生?我试图重新安装MySQL,清理操作系统变量,到处寻找并找不到解决方案.很高兴在这里找到它.
UPD:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
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.connectWithRetries(ConnectionImpl.java:2407)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2328)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
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:417)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.company.Main.main(Main.java:11)
Caused by: java.lang.NullPointerException
at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3309)
at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1985)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1911)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2508)
at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2346)
... 13 more
解决方法:
问题是旧版MySQL Connector / J与MySQL 8的兼容性.您需要升级到MySQL Connector / J 5.1.46或 – 更好 – 8.0.11.
本文标题为:java – com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建与数据库服务器的连接


基础教程推荐
- Spring基础之AOP的概念介绍 2022-12-27
- java实现自定义时钟并实现走时功能 2023-01-23
- SpringBoot结合JWT登录权限控制的实现 2023-03-21
- java8 时间日期的使用与格式化示例代码详解 2023-02-04
- 不调用方法实现hutool导出excel图片示例详解 2023-04-12
- SpringBoot 自动装配的原理详解分析 2023-04-06
- Java8中StringJoiner类的使用详解 2023-06-23
- 69期-Java SE-033_MySQL-4 多表关联查询、 数据库索引 2023-10-31
- Java axios与spring前后端分离传参规范总结 2023-03-21
- java – 在mssql的情况下,metadata.getTables结果集为空 2023-10-30