gpt4 book ai didi

java - 通过jdbc连接mysql异常

转载 作者:可可西里 更新时间:2023-11-01 06:35:19 25 4
gpt4 key购买 nike

当我尝试通过 jdbc 连接 mysql 时出现异常。已经有人问过这种类型的问题,但我没有找到解决问题的方法,这是我的代码...

    public static void main(String[] args) {
String url="jdbc:mysql://localhost:3306/student?
autoReconnect=true&useSSL=false";
String user="root";
String pass="system";
try {
Class.forName("com.mysql.jdbc.Driver");

System.out.println("Now connecting to databse...\n");
Connection con=DriverManager.getConnection(url,user,pass);
System.out.println("Connected !!!\n");
con.close();
System.out.println("connection close !!!\n");

} catch (ClassNotFoundException | SQLException e) {System.out.println(e);
e.printStackTrace();
}
}

这些是我得到的异常...

run:
Now connecting to databse...

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
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:404)
at com.mysql.jdbc.Util.getInstance(Util.java:387)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:917)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:896)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:885)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2165)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2090)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:795)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
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:404)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at dbms_basic.Dbms_Basic.main(Dbms_Basic.java:28)
Caused by: java.lang.NullPointerException
at com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:3005)
at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1916)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1845)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1215)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2255)
at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2106)
... 13 more
BUILD SUCCESSFUL (total time: 4 seconds)

有人帮我解决这个错误..

最佳答案

当您尝试在 Mysql 8 或更高版本的数据库上使用 Mysql 5 JDBC 驱动程序时,会发生此错误。您可以使用以下 JAR 文件

mysql-connector-java 8.0.11

或者使用这个 Maven 依赖

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>

如果你需要在同一个应用程序中同时连接到 MySQL 5 和 MySQL 8,你将需要隔离类加载器,类似下面的方法可能会起作用

How to load JAR files dynamically at Runtime?

关于java - 通过jdbc连接mysql异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46137173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com