PDA

View Full Version : [Java]Problema Connessiona Mysql


Gjbob
04-10-2009, 21:17
Ho qualche problema nella connessione ad un database mysql. Il codice che ho utilizzato nella classe che realizza la connessione è :


import java.sql.*;
public class dbOperations {
private Connection db;
private String errore = "";
private boolean connesso = false;
//Prendere da File
private String nomeDB = "contacts";
private String passwordDB = "********;
private String hostDB = "localhost";
private String userDB = "root";
//--
public boolean connetti(){
try {
Class.forName("com.mysql.jdbc.Driver");
db = DriverManager.getConnection("jdbc:mysql://"+ hostDB +"/"+ nomeDB + "?user=" + userDB + "&password=" + passwordDB);
this.connesso = true;
} catch (Exception ex) {
ex.printStackTrace();
errore = ex.toString();
}
return this.connesso;
}
public boolean disconnetti(){
try {
db.close();
} catch (SQLException ex) {
ex.printStackTrace();
errore = ex.toString();
}
this.connesso = false;
return this.connesso;
}
public ResultSet executeQuery(String query){
ResultSet rs = null;
try {
Statement st = db.createStatement();
rs = st.executeQuery(query);
} catch (SQLException ex) {
ex.printStackTrace();
errore = ex.toString();
}
return rs;
}
public void executeUpdate(String query){
try {
Statement st = db.createStatement();
st.executeUpdate(query);
} catch (SQLException ex) {
ex.printStackTrace();
errore = ex.toString();
}
}
public boolean isConnesso(){
return this.connesso;
}
public String getErrore(){
return this.errore;
}
}




nel main quando chiamo il metodo connetti ottengo questo :


run:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
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:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2103)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
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:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at contacts.dbOperations.connetti(dbOperations.java:16)
at contacts.Main.main(Main.java:8)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)


at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:209)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2026)
... 13 more


Questo avviene facendo girare il programma in una macchina con os. visa ultimate 64 bit.Lo stesso codice gira alla perfezione sul mio nb che monta vista business 32 bit.

Avete qualche supposizione?

Gjbob
05-10-2009, 09:56
Aggiornamento :

Sostituendo localhost con 127.0.0.1 sono riuscito a connettermi al db sulla mia macchina , ma se provo a connettermi ad un db su un altra macchina in lan l'errore di prima si ripresenta.

TellaspallaBob
05-10-2009, 11:12
Hai dimenticato la porta.....
Di default e' la 3306

Gjbob
05-10-2009, 18:58
Hai dimenticato la porta.....
Di default e' la 3306

Hai ragione, ho aggiunto la porta nella stringa di connessione ma il problema non è quello. Per ora riesco a connettermi solo al db in locale tramite l'indirizzo 127.0.0.1 ma non riesco ad accedere se metto l'ip della mia macchina o il nome della macchina. Ps non riesco ad accedere ad un db su di un altra macchina.

RaouL_BennetH
05-10-2009, 19:10
Hai ragione, ho aggiunto la porta nella stringa di connessione ma il problema non è quello. Per ora riesco a connettermi solo al db in locale tramite l'indirizzo 127.0.0.1 ma non riesco ad accedere se metto l'ip della mia macchina o il nome della macchina. Ps non riesco ad accedere ad un db su di un altra macchina.

mmm... ma hai i privilegi per poter accedere al db remoto ?