Não consigo rodar o MySQL

11 respostas
R

Instalei o MySQL na máquina mas não consigo rodar. Além do MySQL eu baixei o Driver (http://dev.mysql.com/downloads/connector/j/5.1.html) mas não consigo rodar a aplicação. Eis o código ...

import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

public class Banco {
    
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DATABASE_URL = "jdbc:mysql://localhost/livros";
    
    public static void main(String args[])
    {
        Connection con = null;
        Statement stat = null;
        
        try
        {
            Class.forName(JDBC_DRIVER);
            con = DriverManager.getConnection(DATABASE_URL,"localhost","root");
            stat = con.createStatement();
            ResultSet rs = stat.executeQuery("SELECT * FROM livros");
            ResultSetMetaData rsmd = rs.getMetaData();
            int colunas = rsmd.getColumnCount();
            System.out.println("Tabela de Autores do Banco de livros");
            
            for(int i=0;i< colunas; i++)
                System.out.printf("%-8s\t",rsmd.getColumnName(i));
            System.out.println();
                
                while(rs.next())
                {
                    for(int j=0; j < colunas; j++)
                        System.out.printf("%-8s\t",rs.getObject(j));
                    System.out.println();
                }
        }
        catch(SQLException sqlException)
        {
            sqlException.printStackTrace();
            System.exit(1);
        }
        catch(ClassNotFoundException classNotFound)
        {
            classNotFound.printStackTrace();
            System.exit(1);
        }
        finally
        {
            try
            {
                stat.close();
                con.close();
            }
            catch(Exception e)
            {
                e.printStackTrace();
                System.exit(1);
            }
        }
    }
}

Na hora do debug aparece ...
init:
deps-jar:
compile-single:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at Banco.main(Banco.java:20)
Java Result: 1
debug-single:
BUILD SUCCESSFUL (total time: 3 seconds)

Pode ser algum erro na configuração ou o código está errado? Desde já lhes agradeço.

11 Respostas

Jair_Rillo_Junior

Pela exception, o drive do MySQL (O arquivo .JAR) não está no classpath.
Arruma isso e tente rodar novamente sua aplicação

R

Ah obrigado, mas como é a linha de configuração do Driver no classpath? O que devo escrever a mais no classpath para o Driver?

diego2005

Você está usando alguma IDE??

T+

R

NetBeans 6.0

diego2005

Hum, no Netbeans não sei, mas no Eclipse tem uma opção de se configurar o Build Path, onde se adiciona arquivos externos, como um .jar

T+

fec

No Netbeans, clica com o botão direito em cima do teu projeto.
Daí: Properties–>Libraries–>Add Jar/Folder…
Depois é só escolher o jar do mysql!

Valew!

fabiojwalter

Como voce disse que utiliza o NetBeans dentro do seu projeto foi criado um pacote adicional chamado Libraries.

:idea: Clique sobre este pacote com o botão direito e selecione a opção ADD JAR/FOLDER depois então localize em sua maquina o .jar do Connector do MySQL.

R

Vejam o que eu fiz. Coloquei o jar do MySQL no caminho C:\Arquivos de programas\Java\jdk1.6.0\jre\lib\ext e ficou C:\Arquivos de programas\Java\jdk1.6.0\jre\lib\ext\mysql-connector-java-5.1.2-beta-bin.jar

E depois coloquei esse caminho no CLASSPATH nas variáveis de ambiente que ficou assim:
=.;%JAVA_HOME%;C:\Arquivos de programas\Java\jdk1.6.0\jre\lib\ext\mysql-connector-java-5.1.2-beta-bin.jar

E na hora do debug …

init:

deps-jar:

compile:

compile-single:

java.sql.SQLException: Acesso negado para o usuário localhost’@‘localhost (senha usada: SIM)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3361)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3295)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:909)

at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3758)

at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1271)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:1965)

at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:718)

at com.mysql.jdbc.JDBC4Connection.(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:403)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:291)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283)

at java.sql.DriverManager.getConnection(DriverManager.java:582)

at java.sql.DriverManager.getConnection(DriverManager.java:185)

at Banco.main(Banco.java:21)

Java Result: 1

debug-single:

BUILD SUCCESSFUL (total time: 3 seconds)
diego2005

Não adicione ao CLASSPATH, adiciona ao seu projeto no Netbeans, como o pessoal falou acima.

T+

R

Adcionei o JAR ao projeto mas continua dando erros de localhost@localhost. Como eu faço pra definir o usuário e senha no MySQL?

R

Tudo bem, já consertei. Obrigado a todos que me ajudaram. Agora … alguém já viu esse erro aqui?

ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): […/…/…/src/share/back/util.c:820]

Criado 16 de agosto de 2007
Ultima resposta 16 de ago. de 2007
Respostas 11
Participantes 5