Erro “Comunications link failure” do Java com MySQL



Depois que comecei os estudos com programação em java, sempre usei o SQLite para aplicações pequenas, pois ainda estava leigo na linguagem e não sabia o suficiente para criar uma aplicação “grande”. Para desenvolvimento web, eu utilizo o MySQL, e há quase dois anos uso apenas o Mandriva Linux em meu computador. E até o momento não tinha nenhum problema, pois uso PHP na criação dos sites, mas quando parti para o MySQL com Java, a história mudou um pouco. O SQLite não serviria para a aplicação que estava começando a desenvolver, por ser um banco pequeno e com outras limitações, então teria realmente que utilizar o MySQL. Utilizei a mesma forma para conectar ao MySQL, quando fazia conexão do Java com SQLite, mas no momento da conexão, era apresentado um erro, o “Comunications link failure”.
Abaixo o erro completo:

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.

Pesquisando muito na internet, tendo pouco resultado, consegui ter uma ideia de qual era o problema, o Java não estava tendo resposta do servidor, então não conseguia realizar a conexão.
Uma das formas de corrigir este, é verificar se a versão do Driver do MySQL (o .jar que usamos em nossas aplicações para conectar ao banco) está compatível o a versão do MySQL instalado. Outra forma, a que realmente resolveu meu problema, a configuração do MySQL, pois utilizo o Mandriva Linux, e por padrão o MySQL dele já vem com uma configuração que impede um tipo de conexão envolvendo a rede(Não me recordo se é exatamente), que é justamente o usado pelo driver. Então no arquivo de configuração, no meu caso o “my.cnf” (/etc/my.cnf), onde possuía o Skip-networking, então adicionei um sharp (#) para comentar esta linha (assim: #skip-networking), salvei a alteração e reiniciei o MySQL, rodei novamente a aplicação que estava desenvolvendo e tudo funcionou normalmente. Esta alteração não influenciou na conexão do PHP com o servidor do banco.
Espero que esta minha experiência sirva-lhe de exemplo e ajude a resolver seu problema (caso tenha :D). Abraço e até o próximo post!

Comentários

  1. Legal o seu post Cledilson. O que acontece na maioria das vezes em programação é justamente isto: a solução acaba sempre sendo a mais simples.

    No meu caso, a versão do Driver Mysql não estava compatível para o acesso remoto, sem contar que este tipo de conexão depende da rede; mas enfim, valeu pela sua pesquisa e sua solução. Obrigado. Foi útil pra mim.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

JDownloader: Corrigir erro Skipped FFMpeg ao baixar do Youtube

Inkscape: Fontes não aparecem - Windows 10

Desenvolvimento Web com Software Livre – Será que funciona?