Conexão com o mysql dando erro

27 respostas
H

Boa tarde a todos.

Eu tenho um sistema aqui no meu pc e tenho uma conexão com o mysql. Fiz uma atualização no meu sistema, agora não consigo mais conectar no netbens. Meu OS é o Debian Squeeze.

Antes da atualização estava funcionando normalmente. Daí eu estava falando um uns conhecidos meue disseram que era permissão de usuário, configurei o grupo do meu usuário e continua do mesmo modo.

(Quando vou rodar o programa aparece o erro.)

"Ocorreu um erro na conexão com a fonte de dados: com.mysql.jdbc.exception.jdbc4.CommunicationsException. Communications link failure.
Last packet sent to the server was 0ms ago.

Só que tem um porém, se eu não consigo conectar? Como eu consigo entrar no Mysql Administrator ou no Query Browser e alterar os dados? Está normal lá. Eu ainda não sei a fonte do problema, se é da configuração do meu computador ou do meu netbeans.

Eis o meu código de conexão:

public class conexao

{

final private String driver = com.mysql.jdbc.Driver;

final private String url =jdbc:mysql://localhost/helpdesk”;

final private String usuario =root;

final private String senha = comando;

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,“Conectou!”);
}
 catch(ClassNotFoundException Driver)
 {
     JOptionPane.showMessageDialog(null,"Driver não localizado: "+Driver);
     result = false;
 }
 catch(SQLException Fonte)
 {
     JOptionPane.showMessageDialog(null,"Ocorreu um erro na conexão " +
            "com a fonte de dados: "+Fonte);
     result = false;
     
 }

Essa é a parte que conecta. Se tiver algo errado ou alguém passou por isso, por favor me dêem uma luz que está difícil para mim.

Grato a todos.

Até mais.

27 Respostas

R

Cara, como assim nem conseguir conectar no banco ??
Tipo usando MySQLQueryBrowser (acho q é esse o nome) ?
Esse erro parece que a comunicao com o banco está funfando, a url, usuario, senha esta correto, o MySQL está no ar ??

Por favor utilize a tag “code” para adicionar codigo fonte nos posts.

boa sorte

P

Cara, a primeira vista na String de conexão está faltando a Porta…
tente ai final private String url =“jdbc:mysql://localhost:3306/helpdesk”, pois a porta 3306 eh a padrão do MySql.
Caso não de certo, segue abaixo um bom tutorial sobre o assunto!

http://www.developer.com/java/data/article.php/3417381/Using-JDBC-with-MySQL-Getting-Started.htm

[ ]'s

H

sim, o Query Browse funciona normalmente, o serviço está startado. Faço até alterações por lá.

Qdo a conexao, mesmo com a porta, dá o mesmo erro. já tentei.

Vlw! da proxima vez eu coloco pelo code.

Abraço a todos.

H

Caro phfaustino.

A conexão minha já funcionava antes normalmente, mas depois da atualização parou, agora eu não sei como voltar a fazer funcionar. Eu não alterei o codigo da conexão.

abraço

H

ninguém?? :frowning:

P

hishin, como vc disse que fez uma atualização no seu sistema, creio que seja no Debian, sou leigo em linux mas creio que com essa atualização a JVM possa der sido atualizada também…
Estou acostumado a usar Postgres e nele existem versões de conectores diferentes para as versões da JVM.
Como já funcionava antes e agora parou de funcionar apenas devido a atualização do sistema, pode ser uma provavel causa.
Desculpe não ser mais objetivo mas acho que vc tem q ir eliminando possíveis causas de erro.
Veja a versão da JVM que está rodando no seu sistema e verifique a compatibilidade com o driver que você está utilizando, caso isto
seja relacionado também com o MySQL assim como é no Postgres.
[ ]'s

B

cara não uso linux
estou vendo no seu código posso estar enganado
mas aqui…

está faltando a porta “localhost:8080” sei lá…
e use a tag [color=red]CODE[/color] da próxima vez se não fica difícil
boa sorte :slight_smile:

P

barney:
cara não uso linux
estou vendo no seu código posso estar enganado
mas aqui…

está faltando a porta “localhost:8080” sei lá…
e use a tag [color=red]CODE[/color] da próxima vez se não fica difícil
boa sorte :)

Barney, no caso a porta que está faltando eh a do MySQL que por padrão é a 3306 :smiley: porém eu já havia levantado esse problema para o hishin e de acordo com ele mesmo acrescentando a porta ainda está com problemas x)

[ ]'s

M

Tenta substituir “localhost” por “127.0.0.1”, e não esqueça da porta…

B

phfaustino:
barney:
cara não uso linux
estou vendo no seu código posso estar enganado
mas aqui…

está faltando a porta “localhost:8080” sei lá…
e use a tag [color=red]CODE[/color] da próxima vez se não fica difícil
boa sorte :)

Barney, no caso a porta que está faltando eh a do MySQL que por padrão é a 3306 :smiley: porém eu já havia levantado esse problema para o hishin e de acordo com ele mesmo acrescentando a porta ainda está com problemas x)

[ ]'s

uheueh é verdade to confundindo portas
de tecnologias diferente ;D

L

veja aqui um outro exemplo similar.

H

ola… desculpe a demora.

bom… eu ja arrumei o codigo e msm assim continua com problemas mas ele dá o mesmo erro.

public class conexao
{
final private String driver = "com.mysql.jdbc.Driver";
    final private String url ="jdbc:mysql://localhost:3306/helpdesk";
    final private String usuario ="root";
    final private String senha = "comando";
    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,"Conectou!");
                         
     }
     catch(ClassNotFoundException Driver)
     {
         JOptionPane.showMessageDialog(null,"Driver não localizado: "+Driver);
         result = false;
     }
     catch(SQLException Fonte)
     {
         JOptionPane.showMessageDialog(null,"Ocorreu um erro na conexão " +
                "com a fonte de dados: "+Fonte);
         result = false;
         
     }
     
     return result;
}

agora. não sei o q fazer.

flw

H

eu tentei debugar e ele deu a seguinte saída, nao sei se ajuda.

init:
deps-jar:
Compiling 1 source file to /home/javanet/Documents/projects/hospital/build/classes
compile:
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
Java Result: 134
debug:
BUILD SUCCESSFUL (total time: 1 second)

vlw, abraço a todos.

H

e entao pessoal… nada?

rodei o netbeans como root e tb nao da conexao, portanto o problema não é permissão em si, eu suponho…

bom… nao tenho mais ideias do que fazer. ja reinstalei o netbeans e nada. fiz operações dentro do mysql e consegui. o problema está na conexão ou algo assim.

grato a todos.

P

Olá

Já tentou rodar um telnet na porta 3306 para ve se conecta ???
Qual o SO ?

P

Olá

Se voce der um telnet 127.0.0.1 3306 , ele conecta ??
Qual o seu SO ?

H

ele funfa na porta 3306 pq eu consigo manipular o bd pelo shell e pelo query browser. soh nao conecta pelo netbeans.

o meu SO é o debian squeezy amd64.

um amigo meu usa no xp e qdo aconteceu isso, ele desinstalou e instalou. dai voltou ao normal. mas nao foi o meu caso.

flw, vlw!!

P

tenta fazer o seguinte

/etc/init.d/mysqld start

e tenta dah o telnet novamente !!

H

Entao meu caro… meu mysql está rodando normalmente. mesmo eu parando e iniciando, dá no msm.

Ta dificil viu…

vlw!! abraço

P

tente liberar a porta por iptables

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

e verifique se nao existe alguma chain do proprio debian
iptables -L
e tenta dar o telnet

K

vc tem ctz q dps da atualização o drive de conexão do java com o mysql não foi apagado?!

H

phcmaia:
tente liberar a porta por iptables

iptables -I INPUT -t tcp --dport 3306 -j ACCEPT

e verifique se nao existe alguma chain do proprio debian
iptables -L
e tenta dar o telnet

Olá!

isso é a saída no terminal:

OPENDEVELOP:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
OPENDEVELOP:~#

Eu renovei a conexao do mysql, baixei novamente. mas ainda nao esta indo.

obrigado a todos

P

Amigo ,

Esse é o unico erro ??
Communications link failure.
Last packet sent to the server was 0ms ago. .
Não tem tipo … Caused By … ???
Saca ??
Use o printstacktrace para ver mais detalhes sobre o erro .

Valew

H

ola a todos.

tomei a medida mais drásticae a que menos gosto. formatei o meu micro e voltou a funcionar. eu sabia q nao era o meu codigo pq ele sempre funcionou, perdi duas semanas tentando voltar a fazer funcionar e agora ele voltou.

vlw pela atenção de todos.

abraço.

G

Consegui encontrar a solução para o seguinte problema, no Debian Squeeze:

ERROR: transport error 202: connect failed: Connection refused ["transport.c",L41]
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) ["debugInit.c",L500]
JDWP exit error JVMTI_ERROR_INTERNAL(113): No transports initializedFATAL ERROR in native method: JDWP No transports initialized,jvmtiError=JVMTI_ERROR_INTERNAL(113)
# echo 0 /proc/sys/net/ipv6/bindv6only
H

mas onde eu colocaria esse codigo?

G
echo 0 > /proc/sys/net/ipv6/bindv6only

O echo serve para exibir qualquer caractere na tela.
O caracter ">" é chamado de redirecionamento (se estiver errado, me corrigem).

O que está fazendo aí, é basicamente enviar o valor 0 para o arquivo bindv6only, ou seja, sobrescrevendo ele.

Criado 14 de janeiro de 2010
Ultima resposta 12 de fev. de 2010
Respostas 27
Participantes 9