Conectar em um database

14 respostas
M

Estou tentando me conectar em um database criado em uma maquina virtual linux, mas não estou conseguindo segue o codigo java:

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;
            }
    }
};

no log: "com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure"

oque esta errado?

14 Respostas

leocantanhede

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

M

Isso eu sei eu só tirei o ultimo numero :slight_smile:

M

debugo sua aplicação? se sim em q parte da erro?

M

Ele não chega a dar erro, ele simplesmente não se conecta

pmlm

Estás com medo que descubram o teu IP? :lol:

O mysql está a aceitar conexões fora de localhost?

M

@pmlm

Sim

pmlm

Sim para a primeira ou segunda pergunta?

rsantik
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.

M

as portas estão abertas, acredito que o problemas seja no código java, mas aonde? =/

rsantik
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

M

esse código não funcionou aqui :frowning:

rsantik

Tenta passar uma senha pra ele, vi que a senha está em branco, será que não é esse o problema?

R

pos a biblioteca mysql no projeto?
este banco existe?

tem um monte de coisa que pode ser.

pmlm

Exacto. O stacktrace completo pode ajudar…

Criado 24 de janeiro de 2012
Ultima resposta 26 de jan. de 2012
Respostas 14
Participantes 6