Mysql no linux, não conecta [RESOLVIDO]

10 respostas
J

Pessoal, estou com o seguinte problema. Instalei o mysql no linux (mandrake 10.1), na linha de comando ele funciona perfeitamente, ja criei o banco, carreguei os dados, tudo ok.
Aí eu tento conectar via app java, e dá o seguite erro:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection refused
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:151)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:1774)
    at com.mysql.jdbc.Connection.<init>(Connection.java:437)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at testebanco.Main.main(Main.java:26)


** END NESTED EXCEPTION **

Estou tentando conectar com esse código mínimo, só para testar:

public static void main(String[] args)
    throws ClassNotFoundException {
        
        try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/editor",  "eu", "123");
        } catch(SQLException se) {
            se.printStackTrace(System.err);
        }
    }

Já tentei:

  • reiniciar a máquina
  • colocar o ip na máquina no lugar de localhost
  • tirar o número da porta da url do banco
  • trocar o nome do driver para org.gjt.mm.mysql.Driver

E não sei mais o que fazer! No windows a minha app conectava normalmente.
Alguém ajuda?
Valeu.

10 Respostas

boaglio

Procure nos logs do mysql o motivo da sua conexão estar sendo negada.

J

O log não acusa nada…

050627 23:45:24  InnoDB: Started; log sequence number 0 43902
/usr/sbin/mysqld: ready for connections.
Version: '4.1.12'  socket: '/var/lib/mysql/mysql.sock'  port: 0  Source distribution
050629 11:22:44 [Note] /usr/sbin/mysqld: Normal shutdown

050629 11:22:44  InnoDB: Starting shutdown...
050629 11:22:47  InnoDB: Shutdown completed; log sequence number 0 43902
050629 11:22:47 [Note] /usr/sbin/mysqld: Shutdown complete

050629 11:22:48  mysqld ended

050629 11:23:50  mysqld started
050629 11:23:51  InnoDB: Started; log sequence number 0 43902
/usr/sbin/mysqld: ready for connections.
Version: '4.1.12'  socket: '/var/lib/mysql/mysql.sock'  port: 0  Source distribution

Estou pegando o arquivo /var/log/mysqld
/mysqld.log

Valeu.

Rubem_Azenha

Pode ser o firewall\iptables…
Eu tava tendo um problema assim no windows 2000, pois uso o Norton, e sem querer mandei ele bloquear a porta do MySQL…

Fiquei semanas tentando descobrir por que não conectava no MySQL…

J

e vc tem alguma dica de como corrigir isso no mandrake?
Valeu.

foia

talvez seja permissão de acesso que você verifica na tabela mysql.user.

J

Resolvi parcialmente com uma dica das listas do mysql. Parece que é um problema específico do Mandrake.
Valeu.

thigo.san

Cara estou usando o mysql no linux e estou com o mesmo problema que voce estava, não me conecto no mysql, e dá o mesmo erro… O que voce fez no mandrake que voltou a funcionar a conexão? Por Favor… me ajuda…

L

execute como Root

iptables -L

e poste o resultado ae …

thigo.san

Cara, executei o comando que voce pediu, msó quenão adiantoou de nada. Já vi um cara que teve o mesmo problema, ele disse que só foi comentar a linha “skip-networking” dentro do my.cnf, só que não existe essa linha lá. Ah e depois que eu criei o usuário criou um abase chamada mysql com algumas tabelas e uam delas se chama user, será que nãé nada ali dentro dessa tabela?

guimesmo

Não sei quanto tempo tem esse tópico, mas como esta é a primeira página na pesquisa do google, achei interessante responder.

Você precisa (ainda na versão 2008.1 (spring) do mandriva), alterar o arquivo /etc/my.cnf. Nele comente a linha skip-networking. Vai ficar assim:

# Don’t listen on a TCP/IP port at all. This can be a security enhancement,

if all processes that need to connect to mysqld run on the same host.

All interaction with mysqld must be made via Unix sockets or named pipes.

Note that using this option without enabling named pipes on Windows

(via the “enable-named-pipe” option) will render mysqld useless!

#skip-networking

Caso o mysql não esteja rodando também, de o comando, como root, hostname 127.0.0.1 para alterar o hostname (naõ sei o motivo do problema).

Criado 29 de junho de 2005
Ultima resposta 16 de abr. de 2008
Respostas 10
Participantes 7