JDBC-соединение с базой данных sourceforge mysql - PullRequest
0 голосов
/ 20 августа 2011

Как указать, что JDBC-соединение с mysql в типичной строке

DriverManager.getConnection("jdbc:mysql://mysql-o.sourceforge.net:4040/o582544_oopp", "user", "pass");

Я запросил удаленный доступ у sourceforge, но с использованием данного порта 4040 я не смог подключиться к нему.

Вот ошибка:

    Driver Loaded.
Exception in thread "main" 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:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2333)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at TestMySQL.main(TestMySQL.java:17)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at java.net.Socket.<init>(Socket.java:375)
    at java.net.Socket.<init>(Socket.java:218)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:257)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)
    ... 15 more

Process completed.

Ответы [ 2 ]

0 голосов
/ 21 августа 2011

Я не вижу ничего в трассировке стека, из которого следует, что ваш запрос передается на удаленный сервер, поэтому я думаю, что у вас возникла проблема с брандмауэром.Попробуйте использовать telnet, чтобы увидеть, устанавливаете ли вы соединение: telnet mysql-o.sourceforge.net 4040 Вы получите некоторый текст с сервера, если сеть пропускает вас.3306 - это обычный порт для MySQL, так что вы можете попробовать это тоже.Сначала вам нужно решить эту часть, а затем решить любые проблемы с разрешениями.

0 голосов
/ 20 августа 2011

здесь указан синтаксис URL:

http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html

Я думаю, у вас есть другая проблема.

Порт по умолчанию для MySQL - 3306. Я неЯ уверен, где вы получили этот номер порта или имя пользователя и пароль, которые вы используете, но это сообщение подсказывает мне, что вы смогли установить соединение, но MySQL отказал вам в доступе.

Разрешения MySQL GRANTs для доступа отконкретный IP-адрес.Я не могу себе представить, что Source Forge запросил ваш IP-адрес, поэтому я предполагаю, что ваш доступ должен быть анонимным и только для чтения.

...