J'essaie de me connecter au serveur MySQL local mais j'obtiens toujours une erreur.
Voici le code.
public class Connect {
public static void main(String[] args) {
Connection conn = null;
try {
String userName = "myUsername";
String password = "myPassword";
String url = "jdbc:mysql://localhost:3306/myDatabaseName";
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, userName, password);
System.out.println("Database connection established");
} catch (Exception e) {
System.err.println("Cannot connect to database server");
System.err.println(e.getMessage());
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
System.out.println("Database Connection Terminated");
} catch (Exception e) {}
}
}
}
}
et les erreurs :
Cannot connect to database server
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.
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 Connect.main(Connect.java:16)
Caused by: java.net.ConnectException: Connection refused
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
J'ai défini le classpath, je me suis assuré que l'option skip network de my.cnf était commentée.
la version de java est 1.2.0_26 (64 bit) mysql 5.5.14 connecteur mysql 5.1.17
Je me suis assuré que l'utilisateur avait accès à ma base de données.
7 votes
Notez le CausedBy en bas. Le serveur SQL n'a jamais accepté la connexion. Que se passe-t-il si l'on fait (à partir d'une ligne de commande)
telnet localhost 3306
? Le serveur mySQL fonctionne-t-il ?0 votes
Vérifiez ce poste. Cela pourrait vous aider : stackoverflow.com/questions/15949/
2 votes
Problème résolu, j'ai ajouté une entrée d'adresse de reliure à my.cnf.
0 votes
Quelle est l'adresse que vous avez mise pour votre adresse de reliure ?
4 votes
@Anthony Vous devriez mettre votre commentaire comme une réponse et l'accepter ...
2 votes
J'ai essayé d'aller dans les Services Windows dans le Panneau de configuration et de démarrer le service mysql et cela a fonctionné essayez cette solution
0 votes
J'ai le même problème. J'ai changé le numéro de port et ça marche pour moi. Il utilisera quelqu'un comme moi.
0 votes
Dans mon cas, la requête était trop complexe et provoquait un blocage de MySQL, même lorsqu'elle était exécutée depuis un code Java externe. Je suppose que la connexion a simplement été interrompue une fois la requête terminée.
0 votes
La désactivation du pare-feu de Windows a fonctionné pour moi.
0 votes
Bind-address = 192.168.0.3 #c'est l'adresse IP de votre système local, Exécuter la commande pour une adresse IP spécifique-> accorder tous les privilèges sur dbname.* à dbusername@'192.168.0.3' IDENTIFIÉ PAR 'dbpassword' ; Exécuter la commande pour toutes les adresses IP-> accorder tous les privilèges sur dbname.* à dbusername@'%' IDENTIFIÉ PAR 'dbpassword' ;