Conectar aplicação swing com Banco MySql

12 respostas
Zeed01

Boa noite colegas !

Alguém aqui já me disse que a melhor coisa a fazer em aplicações cliente X servidor é não faze-las !

Mas como não me convenci com essa afirmação… estou trabalhando em uma.

Basicamente tenho uma camada de apresentação desenvolvida com Swing e preciso conectar com um BD MySql instalado em um servidor, via internet.

Por enquanto estou utilizando um utilitário chamado putty, e consigo criar uma conexão com a maquina do servidor e me conectar com o banco usando “localhost”… mas não queria deixar assim.

Então se alguém puder me ajudar, fico muito agradecido !

Abraços a todos.

12 Respostas

leandrosu

Boa noite Zeed01

Entao cara tenta da uma olhada nesse link aqui …
http://www.guj.com.br/java.tutorial.artigo.7.1.guj

Qualquer coisa da um toque ai …

[]s

Zeed01

Boa noite colegas !

leandrosu:

A conexão em si eu já estou fazendo e também todas as queries.
A minha dúvida é como conectar a minha aplicação que esta numa máquina com o meu banco de dados que esta no servidor.

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");

Acredito que esta seja a linha de código onde eu deveria mexer… colocando outra coisa no lugar de “localhost”…

De qualquer forma muito obrigado.

Um abraço.

leandrosu

Zeed01:
Boa noite colegas !

leandrosu:

A conexão em si eu já estou fazendo e também todas as queries.
A minha dúvida é como conectar a minha aplicação que esta numa máquina com o meu banco de dados que esta no servidor.

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");

Acredito que esta seja a linha de código onde eu deveria mexer… colocando outra coisa no lugar de “localhost”…

De qualquer forma muito obrigado.

Um abraço.

Entao zeed01

cara malz ai, tinha entendido mal a pergunta…

mas entao suponhamos q essa maquina esteja em rede com a sua…

o banco esteja rodando numa maquina com o IP: 10.1.1.1

e so substituir o LOCALHOST pelo ip (no caso o 10.1.1.1)

Connection conn = DriverManager.getConnection("jdbc:mysql://10.1.1.1/BANCO_DE_DADOS?user=root&password=root");

Agora se a maquina nao estiver em rede…
imagino q o procedimento seja o mesmo … so direcionar pro IP da onde se encontra o BD.

Tenta ai …
Ai depois da um toque ai pra saber se vc conseguiu …
ABraço

Zeed01

Boa noite colegas !

leandrosu:

Então… na mesma rede realmente funcionou, mas pra acessar via internet não…

Também tentei colocar a porta 3306, mas também não funcionou.

conn = DriverManager.getConnection("jdbc:mysql://111.111.11.11:3306/BANCO",
                                                "user","password");

[]s

W

O usuario que vc ta usando pra conectar tem permissao pra acessar do host onde a aplicacao esta rodando?
Por exemplo, se vc esta rodando no host “100.0.0.1” com o usuario “userdb”, vc tem que dar permissao ou “userdb@%” ou "[email protected]".
Da uma verificada nisso, outro teste que vc pode fazer eh da maquina cliente, abre um cliente mysql e tenta conectar no servidor : mysql -u -p -h

Eu ja tive que fazer isso um tempo atras e funcionava de boa.

Daniel

Zeed01

Bom dia colegas !

windsofhell:
Fiz o que você disse e estou recebendo essa mensagem de erro:

ERROR 2003 (HY000): Can’t connect to MySQL server on ‘189.33.145.109’ (10061)

Mas utilizando o putty eu consigo conectar… tanto via aplicação quanto MySql Administrator.

Se algéum puder me ajudar, fico muito agradecido.

Abraços a todos !

P

Cara,

ja fiz isso e só colocando o IP da máquina onde estava o banco funcionou.

Zeed01

Boa noite colegas !

windsofhell:

Você sabe me dizer como verificar se o usuario que estou utilizando tem permissão para conectar dessa forma ?

Essa verificação tem que ser feita no servidor ou no cliente ?

Obrigado a todos.

[]s

W

Entao, olha a tabela mysql no seu server :

Se vc der um select nessa tabela vc vera todos os usuarios, os primeiros campos “Host”, “User”.
Host diz de qual host esse usuario tem permissao pra conectar. Se vc quer deixar aberto pra todos os host o campo host deve ser “%”, ou vc pode especificar um host.

Quando vc cria um usuario pelo mySQL administrator eu acho que por default ele ja libera poem “%” no host.

Verifique o que o seu usuario tem no host. Ou tem que ser o nome do host client ou entao “%”.

//Daniel

Zeed01

Bom dia colegas !

windsofhell:

Na tabela user do Mysql encontrei duas linhas para o user “root”, que eu estou usando, em uma o campo host estava como “localhost” em outro como “%”.

Apaguei a linha em que host estava como “localhost”, mas mesmo assim não funcionou.

Será que tem alguma coisa a ver com liberação da porta 3306 no servidor ?

[]s

felipe_thrash

Bom dia Zeed01,

seguinte cara… ainda lembro de algo do linux…
seu linux ta barrando a porta 3306, qual Linux vc ta usando !?

depois de conectar por SSH beleza… mas o problema é conseguir acessar a maquina sem isso certo, vc só quer acessar o banco…

o linux nao abre portas assim… ele é muito seguro! vc vai ter q configurar um scriptzinho pra abrir a porta 3306, assim como qualquer outra q queira
procure sobre iptables…

abraço,
espero q ajude :smiley: :smiley: :smiley:

W

ah, entao acho que eh como o rapaz acima disse, so abrir a porta do mysql.

Criado 10 de setembro de 2007
Ultima resposta 12 de set. de 2007
Respostas 12
Participantes 5