myroks
Janeiro 24, 2012, 2:52pm
#1
Estou tentando me conectar em um database criado em uma maquina virtual linux, mas não estou conseguindo segue o codigo java:
[code]public class select {
public static void main(String[] args)
{
DB db = new DB();
Connection conn=db.dbConnect(
“jdbc:mysql://192.168.0.0:3306/teste”, “root”, “”);
}
}
class DB
{
public DB() {}
public Connection dbConnect(String db_connect_string,
String db_userid, String db_password)
{
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(
db_connect_string, db_userid, db_password);
System.out.println("connected");
return conn;
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
};
[/code]
no log: “com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure”
oque esta errado?
Não existe ip com final 0, dá uma olhada no ip da máquina virtual que você consegue, no mínimo deve ser 192.168.0.1
myroks
Janeiro 24, 2012, 3:11pm
#3
Isso eu sei eu só tirei o ultimo numero
debugo sua aplicação? se sim em q parte da erro?
myroks
Janeiro 24, 2012, 3:31pm
#5
Ele não chega a dar erro, ele simplesmente não se conecta
pmlm
Janeiro 24, 2012, 4:48pm
#6
Estás com medo que descubram o teu IP? :lol:
O mysql está a aceitar conexões fora de localhost?
pmlm
Janeiro 24, 2012, 7:46pm
#8
Sim para a primeira ou segunda pergunta?
rsantik
Janeiro 24, 2012, 8:53pm
#9
public class select {
public static void main(String[] args)
{
DB db = new DB();
Connection conn=db.dbConnect(
"jdbc:mysql://localhost/teste", "root", "");
}
}
Ele não está conseguindo conectar no IP que você passou. SE for localhost, utilize a palavra “localhost”, se estiver num outro computador na rede, então verifique que o firewall do PC não esteja bloqueando a conexão.
myroks
Janeiro 25, 2012, 2:50pm
#10
as portas estão abertas, acredito que o problemas seja no código java, mas aonde? =/
rsantik
Janeiro 25, 2012, 2:59pm
#11
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
public class MySQL {
private String host;
private String user;
private String pass;
private String database;
public Connection c;
/**
* Construtor da classe
*
* @param host Host em que se deseja conectar
* @param database Nome do database em que se deseja conectar
* @param user Nome do usuário
* @param pass Senha do usuário
*/
public MySQL( String host, String database, String user, String pass ) {
this.pass = pass;
this.user = user;
this.host = host;
this.database = database;
}
/**
* Método que estabelece a conexão com o banco de dados
*
* @return True se conseguir conectar, falso em caso contrário.
*/
public boolean connect() {
boolean isConnected = false;
String url;
url = "jdbc:mysql://"+this.host+"/"
+this.database+"?"
+"user="+this.user
+"&password="+this.pass;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println(url);
this.c = DriverManager.getConnection(url);
isConnected = true;
} catch( SQLException e ) {
e.printStackTrace();
System.out.println(e.getMessage());
isConnected = false;
} catch ( ClassNotFoundException e ) {
e.printStackTrace();
System.out.println(e.getMessage());
isConnected = false;
} catch ( InstantiationException e ) {
e.printStackTrace();
System.out.println(e.getMessage());
isConnected = false;
} catch ( IllegalAccessException e ) {
e.printStackTrace();
System.out.println(e.getMessage());
isConnected = false;
}
return isConnected;
}
}
Esse código funcionou aqui.
O classpath do Driver está configurado certinho no eclipse?
Abs
Rodrigo
myroks
Janeiro 25, 2012, 4:37pm
#12
esse código não funcionou aqui
rsantik
Janeiro 25, 2012, 4:47pm
#13
Tenta passar uma senha pra ele, vi que a senha está em branco, será que não é esse o problema?
raghy
Janeiro 26, 2012, 1:10am
#14
pos a biblioteca mysql no projeto?
este banco existe?
tem um monte de coisa que pode ser.
pmlm
Janeiro 26, 2012, 6:45am
#15
Exacto. O stacktrace completo pode ajudar…