2011-08-20 4 views
0

Comment spécifier que la connexion JDBC MySQL dans la ligne typiqueconnexion JDBC à la base de données MySQL de sourceforge

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

Je demande l'accès à distance à partir de SourceForge mais en utilisant le port donné 4040 je ne pouvoir s'y connecter .

Voici l'erreur:

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. 

Répondre

0

la syntaxe URL est donnée ici:

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

Je pense que vous avez une autre question. Le port par défaut pour MySQL est 3306. Je ne suis pas sûr d'où vous avez eu ce numéro de port, ou le nom d'utilisateur et mot de passe que vous utilisez, mais ce message me suggère que vous étiez en mesure de faire la connexion, mais MySQL vous avez refusé l'accès. MySQL accorde des autorisations pour l'accès à partir d'une adresse IP particulière. Je ne peux pas imaginer que source forge ait demandé votre adresse IP, donc je devine que votre accès devrait être anonyme et en lecture seule.

0

Je ne vois rien dans la trace de la pile qui implique que votre demande parvient au serveur distant, donc je pense que vous avez un problème de pare-feu. Essayez d'utiliser telnet pour voir si vous établissez une connexion: telnet mysql-o.sourceforge.net 4040 Vous obtiendrez du texte du serveur si le réseau vous laisse passer. 3306 est le port habituel pour MySQL, donc vous pouvez essayer aussi. Vous devrez d'abord résoudre cette partie, puis les problèmes d'autorisation.

Questions connexes