• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

cheires

Communications link failure [resolvido]

17 mensagens neste tópico

Olá a todos.

Estou com um problema de conecção à base de dados.

tenho um programa em java que deveria conectar-se a uma base de dados MySql.

O programa funciona, já foi testado anteriormente, só que recentemente tive que formatar o pc e reinstalar o linux.

Só que depois de ter formatado o PC, e quando vou correr o programa, dá o seguinte erro.

SQLException: State:   08S01Severity: 0
Communications link failure

The last packet successfully received from the server was 1,255,354,460,681 milliseconds ago.  The last packet sent successfully to the server was 0 milliseconds ago.
Exception in thread "main" java.lang.NullPointerException

Já escrevi de novo o código, já testei o código no Net Beans e  Eclipse e é a mesma coisa.

Já tentei, com o glassfish, criar uma connection pool e não consigo obter ligação à base de dados.

Ah, obviamente que tenho o mysql-connector na minha classpath.

Penso que poderá ser alguma coisa com a configuração do mysql, mas não consigo decifrar o quê.

Será que alguém me pode ajudar?

Estou meso desesperado, já tentei de tudo e nada faz a ligação.

Abraço a todos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens q mostrar mais detalhes do problema, essa informação é insuficiente p te poder ajudar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens q mostrar mais detalhes do problema, essa informação é insuficiente p te poder ajudar.

O que coloquei aí é a stack trace do erro.

Qual a informação que gostavas de mais de ter para ajudar a resolver o erro?

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já verificas-te firewall???

Penso não ter a firewall activa, mas como o acesso não passa pela porta ethernet, pode ser que o problema não se ponha (o acesso é local), mas mesmo assim é algo a verificar.

Obrigado pela sugestão.

Abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta instalar algum programa que comunique com a base de dados como o sqlyog ou mysql gui.. tenta comunicar com as bases de dados da tua ligação e se conseguires o problema está no teu programa senão o problema está na ligação e tens de ver o que se passa de errado no mysql server..

P.S.: Pode parecer muito mau, mas uma altura passei 2 tardes a tentar resolver algo semelhante quando o problema era que não tinha o servidor ligado.. Pode ser algo muito básico e não estares a dar com o problema visto já o teres conseguido pôr a funcionar..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta instalar algum programa que comunique com a base de dados como o sqlyog ou mysql gui.. tenta comunicar com as bases de dados da tua ligação e se conseguires o problema está no teu programa senão o problema está na ligação e tens de ver o que se passa de errado no mysql server..

P.S.: Pode parecer muito mau, mas uma altura passei 2 tardes a tentar resolver algo semelhante quando o problema era que não tinha o servidor ligado.. Pode ser algo muito básico e não estares a dar com o problema visto já o teres conseguido pôr a funcionar..

o phpmyadmin serve?

É que com esse consigo aceder às BD existentes.

O Servidor também está ligado.

Penso que poderá ser, ou um problema com a firewall, ou com a configuração do próprio MySql.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PHPMyadmin serve, tenta aceder à bd, se conseguires aceder tens de rever o programa se não conseguires aceder pelo phpmyadmin indica qual o erro que deu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PHPMyadmin serve, tenta aceder à bd, se conseguires aceder tens de rever o programa se não conseguires aceder pelo phpmyadmin indica qual o erro que deu.

Sim com o phpmyadmin consigo aceder ao servidor e às bases de dados existentes, consigo também modificar essas bases de dados.

Com o programa não há qualquer problema, pois estava a funcionar bem, antes de ter formatado o pc, e não foi alterado.

O que postei como código no 1º post, é a stack trace do erro, ou seja, é o erro que dá.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basicamente o teu programa consegue enviar dados para o servidor mas não os consegue receber.

Verifica as configurações do mysql e que a versão do connector seja a mesma. Uma outra forma de despistagem seria escreveres uma data connection "fora do teu programa, como um programa à parte" e a testasses. Possivelmente é o connector que está a funcionar mal.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basicamente o teu programa consegue enviar dados para o servidor mas não os consegue receber.

Verifica as configurações do mysql e que a versão do connector seja a mesma. Uma outra forma de despistagem seria escreveres uma data connection "fora do teu programa, como um programa à parte" e a testasses. Possivelmente é o connector que está a funcionar mal.

Então básicamente, necessito de ter a versão do connector igual à versão do MySql?

Obrigado pelas respostas, foi a resposta mais conclusiva que tive até hoje, e já ando com isto à algum tempo...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A vesão do connector tem de ser compativel com a versão do mysql que estás a utilizar, basicamente o que está a acontecer é que a tua app consegue "falar" com o mysql, mas ele não responde, originando um "time-out". Normalmente isto acontece por problemas nos connectores. tanto em java como em outras linguagens...

Espero que consigas resolver o erro, e depois digas como o solucionas-te, pois está a intrigar-me essa situação, e já me fez andar a rabiscar possibilidades num guardanapo na hora de almoço.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

depois de uma pesquisa pelo google em relação à questão de compatibilidade entre o servidor MySql que estou a usar e o conector, verifiquei que eles são compatíveis.

Estou a usar o MySql-5.0.84, e o conector mysql-connector-java-5.1.8.bin.jar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já tentas-te verificar o codigo da connecção e a porta? pode ser isso a origem do erro :) jdbc:mysql://localhost:3306/bd

Sabes que versão do connnector usas-te inicialmente?? verifica se estas a usar a mesma versão do connector que usas-te quando desenvolves-te a aplicação. Por vezes entre versões de connectores existem diferenças e isso pode fazer uma grande diferença em termos de programação. A questão base é que o mysql não responde à tua app, ela manda-lhe informação e ele não lhe responde.

Altera as configurações de time out do mysql em /etc/my.conf

[mysqld]

:

:

wait_timeout = 1800

connect_timeout = 10

:

:

Pode ser que isto resolva o problema, dando tempo ao mysql para responder, ainda assim o que me parece é que alguma coisa impede a tua app de receber dados do mysql, provavelmente o uso de versões diferentes do connector durante o desenvolvimento, e agora o deploy.

Vai dizendo alguma coisa

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem estou oficialmente a ficar desesperado.

Testei o mesmo programa numa outra máquina, em que o erro foi exactamente o mesmo.

Já não me lembra o conector que usei inicialmente, mas escrevendo o programa de novo, isso não iria interferir, pois havia uma adaptação quer da versão do IDE, MySql, connetor, etc.

O resultado contina a ser o mesmo... Comunications Link Failure, inclusivé em máquinas diferentes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema definitivamente está na connecção. Verifica o host name. Re-escrevendo o codigo poderia não alterar nada em termos de componente, porque por vezes os componentes variam de tal maneira que passam a ter expecificidades.

A realidade é que o programa não consegue comunicar com o mysqld a solução provavelmente estará nalgum problema com o connector / connecção, aconselho rever, e talvez escrever uma rotina que execute um sql simples à bd em java com a a versão do connector que está a utilizar e veja se comunica, se comunicar, aconselho a comparar o codigo do programa, com o do novo "mini-programa" que consegue comunicar. assim terá uma despistagem eficaz do erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, o problema já está resolvido.  :wallbash:

No /etc/rc.d/rc.mysql  (uso Salckware)estava uma linha sem comentário com o seguinte código

#To allow outside connections to the database comment out next line.
SKIP="--skip-networking"

Bastou reiniciar o mysql para o programa funcionar normalmente.

E tanto tempo que eu perdi com esta treta. :wallbash:

Obrigado apocsantos pelo seu interesse e ajuda.

Se necessitar de alguma coisa da minha parte, apite  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora