NetBeans não conecta no MySQL

Ao executar o programa em java abaixo, que realiza uma consulta em um banco de dados mysql…

import java.sql.*;
public class BancoTeste {

    public static void main(String args[]) {
        System.out.println("Testando acesso a banco de dado MySQL\n\n");
        Connection conn = null;
        String teste = "SELECT codigo,nome,sobrenome FROM testeJava;";

        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost/test?" +"user=root&password=senha");
            System.out.println("A conexão foi um sucesso\n");
            Statement stm = conn.createStatement();
            ResultSet rs = stm.executeQuery(teste);
            while (rs.next()) {
                String nome = rs.getString("nome");
                String codigo = rs.getString("codigo");
                String sobrenome = rs.getString("sobrenome");
                System.out.println("Codigo: " + codigo + "\nNome: " +nome+ "  Sobrenome: " + sobrenome);
                System.out.println("---------------------------------------");
            }
            System.out.println("\n\nConsulta realizada com sucesso!!!\n");
        } catch(ClassNotFoundException e) {
            System.out.println("excessão Classe não encontrada");
            e.printStackTrace();
        } catch(SQLException e) {
            System.out.println("SQL Exception... Erro na consulta:");
            e.printStackTrace();
        } finally {
            try {
                conn.close();
                System.out.println("\n\nFechando a conexão");
            } catch(SQLException erro) {
                System.out.println("Erro no fechamento");
                erro.printStackTrace();
            }
        }
    }
}

Download do código

… resultava sempre em um erro:

Testando acesso a banco de dado MySQL

SQL Exception... Erro na consulta:
<strong>com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure</strong>

Last packet sent to the server was 0 ms ago.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2103)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:207)
        at BancoTeste.main(BancoTeste.java:11)
Caused by: java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:525)
        at java.net.Socket.connect(Socket.java:475)
        at java.net.Socket.<init>(Socket.java:372)
        at java.net.Socket.<init>(Socket.java:215)
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2026)
        ... 12 more
Exception in thread "main" java.lang.NullPointerException
        at BancoTeste.main(BancoTeste.java:31)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Não só este código mas outros que funcionavam em um ambiente Windows, não conseguiam conectar ao banco do MySQL.

Após uma longa pesquisa, consegui resolver o problema:

1. Pare o servidor do mysql:

# /etc/rc.d/mysqld stop

2. No arquivo /etc/mysql/my.cnf, comente a linha abaixo, acrescentando “#” no início da mesma:

# skip-networking

3. No arquivo /etc/hosts.allow, acrescente as linhas abaixo:

mysqld : ALL : ALLOW
mysqld-max : ALL : ALLOW

4. Inicie o servidor do MySQL:

#/etc/rc.d/mysqld start

5. Teste sua conexão com o banco de dados, executando o código novamente.

O código mostrado no post (que foi retirado daqui) foi usado somente para testar a conexão no banco, assim tirava a dúvida se era problema no código ou em alguma configuração do sistema.

Foi criado um novo projeto no NetBeans, adicionado a classe acima e vinculada a biblioteca MySQL JDBC Driver a este projeto. Obviamente, deverá criar a tabela no banco de dados para que tudo ocorra sem problemas. Pode ver como fazer isso aqui.

REFERÊNCIAS

[1] – NetBeans não conecta no mysql [RESOLVIDO]
[2] – Escrevendo aplicações com MySQL e Java

Anúncios
Marcado com: , , , ,
Publicado em linux, programação
3 comentários em “NetBeans não conecta no MySQL
  1. assolan disse:

    o.O que locura cara!

    Aqui não aconteceu nada disso. Todas as app’s em JAVA + MySQL funcionaram de boa.
    Mas é bom que já fica registrado.

    Boa iniciativa man!
    Abrass

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: