Boa noite, pessoal!
Estou desenvolvendo uma aplicação que se conecta com um servidor mysql (através do xampp) remotamente.
Sendo que não estou conseguindo realizar essa conexão. Aparece o seguinte erro:
Estou realizando a conexão da seguinte maneira:
[code]import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
public class CriaConexao {
public static Connection getConexao() throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Conectando ao banco.");
return DriverManager.getConnection("jdbc:mysql://IP:3306/DATA_BASE", "root", "");
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}[/code]
Andei dando uma pesquisada na net e em alguns tópicos aqui no site referente a esse assunto, porém não consigo encontrar nenhuma solução concreta.
Há uma alternativa, que seria configurar o mysql para receber conexões tcp/ip, que por padrão é desabilitado, porém essa configuração só pode ser alterada no linux (eu estou utilizando o Windows) e não consegui fazer.
Alguém aí já passou por esse problema e conseguiu resolvê-lo?
Desde já, agradeço pela ajuda!
![:wink: :wink:](//www.guj.com.br/images/emoji/twitter/wink.png?v=5)
Esse erro com.mysql.jdbc.execeptions.jdbc4.CommunicationsException: Communications link failure. The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server
se refere ao fato de uma tentativa de conexão onde o mysql não responde.
Isto aqui
"jdbc:mysql://IP:3306/DATA_BASE"
é o que provavelmente esteja errado.
Veja que após as duas barras invertidas está escrito IP, ali deveria estar o endereço ip do servidor onde o mysql roda ou localhost, caso o teu mysql seja instalado localmente. Além disso, você tem um banco de dados chamado DATA_BASE?
Acredito que assim
"jdbc:mysql://localhost:3306/nome_do_banco_de_dados_que_quer_conectar"
Esse IP é o ip do servidor!
Mas eu acho que não seria isso, ‘drsmachado’…
Quando eu coloco “localhost:3306” ele vai pegar o banco de dados que está armazenado na máquina onde o programa está sendo executado.
Para o programa se conectar com o banco de dados do servidor eu teria que colocar o ip dele, não o localhost.
Ex.:
Testei outros ip’s para ver se tinha algum problema com o servidor, porém dava o mesmo erro.
OBS.: Eu realizava o “ping” todas as vezes e pingava normalmente.
E já alterou o my.ini para que o mysql permita conexões externas?
Já tirei do comentário a linha com o “skip-networking” e nada funciona!
Talvez tenha que liberar a porta 3306 do windows no firewall.
CONSEGUI!!
O negócio era mesmo o firewall.
Desativei, momentaneamente, e funcionou certinho!
OBRIGADO, ‘romarcio’ e ‘drsmachado’ pela ajuda!
![:stuck_out_tongue: :stuck_out_tongue:](//www.guj.com.br/images/emoji/twitter/stuck_out_tongue.png?v=5)