Не удалось создать соединение с MySQL из eclipse

108
8

Я попытался подключиться к MySQL из eclipse, используя следующий код. Однако, когда я пытаюсь скомпилировать код, я получаю сообщение об ошибке (как показано после кода). Пожалуйста помоги. Я новичок. Я попытался немного изменить его, но не смог заставить его работать. Спасибо!

      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

Большое спасибо за вашу помощь.

спросил(а) 2021-01-28T00:33:59+03:00 4 месяца, 4 недели назад
1
Решение
89

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Выше строки говорят, что yor mysql не работает. Если вы используете XAMP сервера WAMP, сначала запустите сервер 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/

ответил(а) 2021-01-28T00:33:59+03:00 4 месяца, 4 недели назад
45

Причина объясняется в этой строке

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");

ответил(а) 2021-01-28T00:33:59+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема