我尝试使用以下代码从eclipse连接到MySQL。但是,当我尝试编译代码时,我收到一个错误(如代码后所示)。请帮忙。我是新手。我试过改变它但是无法让它运转起来。 谢谢!
public static void main(String[] args) {
// creates three different Connection objects
Connection conn = null;
Connection conn2 = null;
Connection conn3 = null;
try {
// connect way #1
String user = "user";
String password = "pwd";
conn = DriverManager.getConnection ("jdbc:mysql://\" + host + \"/feedback?\" + \"user=\" + user + \"&password=\" + password+\"useSSL=false", "meher", "meher");
if (conn != null) {
System.out.println("Connected to the database test1");
}
} catch (SQLException ex) {
System.out.println("An error occurred. Maybe user/password is invalid");
ex.printStackTrace();
}
}
}
错误消息:
> An error occurred. Maybe user/password is invalid
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
>The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the 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:425)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2188)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2221)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2016)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
`enter code here`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:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
at
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at meher.main(meher.java:29)
> Caused by: java.net.UnknownHostException: " + host + "
>> at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at
com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:188)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:301)
... 15 more
非常感谢你的帮助。
答案 0 :(得分:0)
原因在这一行解释
Caused by: java.net.UnknownHostException: " + host + "
问题在于URL字符串格式,因为主机名实际上就是“由...引起的”。
试试这个
String url = String.format("jdbc:mysql://%s/feedback?user=%s&password=%s&useSSL=false", user, password)
conn = DriverManager.getConnection (url, "meher", "meher");
答案 1 :(得分:0)
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
上面说yor mysql没有运行。如果您正在使用WAMP服务器的XAMP,那么首先从那里启动mysql服务器。 在上面尝试这个简单的例子
public static void main(String[] args) {
Connection conn = null;
try {
// connect way #1
String user = "user";
String password = "pwd";
conn= DriverManager
.getConnection("jdbc:mysql://localhost:3306/dbname",user, password);
if (conn != null) {
System.out.println("Connected to the database test1");
}
} catch (SQLException ex) {
System.out.println("An error occurred. Maybe user/password is invalid");
ex.printStackTrace();
}
}
例如
https://www.mkyong.com/jdbc/how-to-connect-to-mysql-with-jdbc-driver-java/