Tenho uma aplicação Java com BD MySQL, todos os computadores com Windows aqui se conectam perfeitamente a ela, porém estou tentando fazer a aplicação executar no MAC OS e não consigo… já fiz várias modificações e nada sólido… esse é o erro que ta aparecendo pra mim.
[b]com.mysql.jdbc.exceptions.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.[/b]
[quote=jakefrog]Tem firewall/anti-virus bloqueando a aplicação ou as portas de conexão não?
No arquivo de configuração do DB está apontando corretamente para o DB e sua porta liberada?[/quote]
Cara, nunca trabalhei com MAC, eu estou tentando fazer isso a algumas horas somente, você poderia me ajudar a localizar esse bloqueo por firewall ou anti-vírus?
Minha conexão é essa:
[code]final private String driver = “org.gjt.mm.mysql.Driver”;
final private String url = “jdbc:mysql://SERVIDOR:3306/BANCO”; //exemplo de url
final private String usuario = “adm”; //exemplo usuario
final private String senha = “123”; //exemplo senha
private Connection conexao;
public Statement statement;
public ResultSet resultset;
public boolean conecta()
{
boolean result = true;
try
{
Class.forName(driver);
conexao = DriverManager.getConnection(url, usuario, senha);
//JOptionPane.showMessageDialog(null,"Pronto para cadastrar!");
statement = conexao.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
resultset = statement.executeQuery("Show tables");
}
catch(ClassNotFoundException Driver)
{
JOptionPane.showMessageDialog(null,"Driver não localizado: "+Driver);
return false;
}
catch(SQLException Fonte)
{
JOptionPane.showMessageDialog(null,"Deu erro na conexão "+"com a fonte de dados: "+Fonte);
return false;
}
return result;
}[/code]
Neste exemplo, toda vez que você chamar por “www.example.com”, o sistema irá procurar no IP 209.114.40.229 e o mesmo ocorre com o “localhost”, onde o sistema chamará o IP 127.0.0.1
No seu exemplo de URL: String url = “jdbc:mysql://SERVIDOR:3306/BANCO”, verifique se o “SERVIDOR” está mapeado no resolv.conf.
Faça um teste: Ao invés de colocar o DNS (SERVIDOR), use o IP diretamente, por exemplo, 127.0.0.1: jdbc:mysql://127.0.0.1:3306/BANCO; lembrando que deve substituir o “127.0.0.1” pelo IP do servidor MySQL.
Abra o terminal (Applications > Utilities > Terminal.app)
verifique se sua máquina consegue enviar pacotes para o servidor MySQL: ping IP_DO_SERVIDOR_MYSQL
se der certo, veja se você consegue estabelecer uma conexão com o servidor onde está o MySQL, na porta onde o MySQL está ouvindo: telnet IP_DO_SERVIDOR_MYSQL PORTA_DO_MYSQL
se este passo falhar, é provável que haja algum firewall em algum lugar. Se for na sua máquina, o caminho para desativá-lo é System Preferences > Security > Firewall.
[quote=Daniel Quirino Oliveira]1. Abra o terminal (Applications > Utilities > Terminal.app)
2. verifique se sua máquina consegue enviar pacotes para o servidor MySQL: ping IP_DO_SERVIDOR_MYSQL
3. se der certo, veja se você consegue estabelecer uma conexão com o servidor onde está o MySQL, na porta onde o MySQL está ouvindo: telnet IP_DO_SERVIDOR_MYSQL PORTA_DO_MYSQL
4. se este passo falhar, é provável que haja algum firewall em algum lugar. Se for na sua máquina, o caminho para desativá-lo é System Preferences > Security > Firewall.
Boa sorte :)[/quote]
Cara, não sei se esse IP que to usando é o certo, fiz ipconfig na máquina (servidor) e peguei o ip, mas acho que ele muda toda vez que desliga o pc.
Enfim, fiz o ping no ip que achei e deu certo, depois fiz telnet utlizando a porta +/- assim: 198.888.1.111 3306 e apareceu nada relevante, tentei assim 198.888.1.111:3306 e deu erro.
Pessoal, obrigada pela ajuda até agora!
Consegui conectar com o servidor, no meu código de conexão eu estava usando o nome do servidor e não seu ip, pois ele modifica toda vez que a máquina é desligada. Modifiquei para o ip e deu tudo certo, porém agora estou com dois novos problemas.
1- Não consigo exibir meus relatórios desenvolvidos em iReports;
2- Como solucionar o problema com o ip dinâmico.
Agraceço muito a ajuda de todos.
Espero que vocês possam me ajudar em mais essas dúvidas.