Jump to content

Communications link failure [resolvido]


cheires
 Share

Recommended Posts

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.

Link to comment
Share on other 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..

Link to comment
Share on other 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.

Link to comment
Share on other 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á.

Link to comment
Share on other 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.

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other 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...

Link to comment
Share on other 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.

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other 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

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other 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.

Link to comment
Share on other 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.

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other 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  🙂

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.