usando máquina virtual como o servidor mySql

1

Estou desenvolvendo um programa java e preciso de um banco de dados. Agora estou usando o MAMP e é muito fácil, mas eu teria uma máquina virtual (servidor ubuntu) e eu preciso conectar meu programa java com esta máquina virtual usando o vitualBox.

a situação:

  • Eu instalei o VirtualBox no meu mac e instalei uma máquina do servidor ubuntu
  • defina "adaptador de ponte" nas configurações de rede do VB
  • Eu instalei o mysql no ubuntu-server e criei um banco de dados simples (todos funcionam bem com o Ubuntu)
  • fazendo ifconfig pelo ubuntu eu recebo o ip: 192.168.1.217

então no programa java eu fiz essa função:

public static Connection connect(String host, int port, String dbName, String user, String passwd)
{
    Connection dbConnection = null;
    try
    {
        String dbString = null;
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        dbString = "jdbc:mysql://" + host + ":" + port + "/" + dbName;

        dbConnection = DriverManager.getConnection(dbString, user, passwd);

    }
    catch (Exception e)
    {
        System.err.println("Failed to connect with the DB");
        e.printStackTrace();
    }

    return dbConnection;
}

e no main () eu uso:

Connection con = connect(1, "192.168.1.217", 3306, "Ciao", "root", "cocacola");

3306 era um valor padrão. Eu não sei se está correto, funciona no mamp, mas .... como eu posso encontrar a porta correta que tenho que usar com o VB?

quando eu corri o programa eu recebo a exceção de captura ... o que há de errado?

    
por ffmm 10.12.2012 / 16:34

2 respostas

3

Verifique seu arquivo /etc/my.cnf/ ou /etc/mysql/my.cnf para o bind_address. Seu MySQL liga-se ao localhost por padrão, você deve colocá-lo em 0.0.0.0.

Encontrar:

bind-address            = 127.0.0.1

Substituir:

bind-address            = 0.0.0.0

Se você não tiver um arquivo my.cnf, poderá criá-lo. Nesse caso, você precisaria pelo menos disso:

[mysqld]
bind-address            = 0.0.0.0
    
por 10.12.2012 / 18:01
0

Seu método usa os parâmetros errados. Comparar

public static Connection connect(String host, int port, String dbName, String user, String passwd)

com

Connection con = connect(1, "192.168.1.217", 3306, "Ciao", "root", "cocacola");

Isso significa que, quando você cria a string dbString que está criando

jdbc:mysql://1:192.168.1.217/3306; 

No entanto, sua sobrecarga nem sequer combina, então estou surpreso que você tenha chegado tão longe (embora eu não c # Java, então talvez isso esteja OK)! A conexão Connection leva 5 parâmetros, mas quando você chama o método, você passa 6!

Eu acho que mudar

Connection con = connect(1, "192.168.1.217", 3306, "Ciao", "root", "cocacola"); 

para

Connection con = connect("192.168.1.217", 3306, "Ciao", "root", "cocacola");
    
por 10.12.2012 / 17:15