我正在尝试连接到我在Java程序中使用MySQL创建的数据库,但它总是失败.
为了举例,这是我的代码:
import java.sql.*;
public class Squirrel {
public static void main(String[] args) {
String user;
String password;
Connection connection;
Statement statement;
try {
Class.forName("com.MysqL.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:MysqL://localhost:3306",user,password);
statement = connection.createStatement();
// Other code
} catch (ClassNotFoundException | sqlException e) {
e.printStackTrace();
} finally {
try {
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (sqlException e) {
e.printStackTrace();
}
}
}
}
我能够从IntelliJ中连接到数据库,并添加了添加到项目中的MysqL-connector-java-5.1.40.jar,但每次运行程序时,DriverManager.getConnection()都会抛出:
com.MysqL.jdbc.exceptions.jdbc4.MysqLNonTransientConnectionException: Could not create connection to database server.
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at com.MysqL.jdbc.Util.handleNewInstance(Util.java:425)
at com.MysqL.jdbc.Util.getInstance(Util.java:408)
at com.MysqL.jdbc.sqlError.createsqlException(sqlError.java:918)
at com.MysqL.jdbc.sqlError.createsqlException(sqlError.java:897)
at com.MysqL.jdbc.sqlError.createsqlException(sqlError.java:886)
at com.MysqL.jdbc.sqlError.createsqlException(sqlError.java:860)
at com.MysqL.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2330)
at com.MysqL.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
at com.MysqL.jdbc.ConnectionImpl.MysqL.jdbc.JDBC4Connection.MysqL.jdbc.Util.handleNewInstance(Util.java:425)
at com.MysqL.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
at com.MysqL.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:678)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:229)
at Squirrel.main(Squirrel.java:12)
Caused by: java.lang.NullPointerException
at com.MysqL.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:2997)
at com.MysqL.jdbc.MysqLIO.sendConnectionAttributes(MysqLIO.java:1934)
at com.MysqL.jdbc.MysqLIO.proceedHandshakeWithPluggableAuthentication(MysqLIO.java:1863)
at com.MysqL.jdbc.MysqLIO.doHandshake(MysqLIO.java:1226)
at com.MysqL.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
at com.MysqL.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
... 13 more