Driver mysql!

14 respostas
rocha

Olá pessoal estou com o seguinte problema:

Eu vinha utilizando o seguinte driver para mysql mm.mysql-2.0.14.jar

fazia a conexao dentro de uma classe Conexao.java assim:

Class.forName("org.gjt.mm.mysql.Driver"); conexao = DriverManager.getConnection("jdbc:mysql://localhost/bd");

Dai comecei a ter alguns problemas com este driver e descobri que estava usando um driver antigo

entrei no site do mysql baixei um arquivo: mysql-connector-java-3.1.7.zip
e comecei a fazer a conexao assim q é como dizia a documentação:

Class.forName("com.mysql.jdbc.Driver"); conexao = DriverManager.getConnection("jdbc:mysql://localhost/bd");

Acontece q não consigo conectar de jeito nenhum… as variaveis de ambiente estão corretas… já descompactei o arq zip q peguei… mas tb não deu certo… Alguém pode me ajudar?

Rocha

14 Respostas

cv1

Stack trace, please?

jfnando

Kra,

seria bom você adicionar aí o erro q retorna, para saber exatamente oq estah acontecendo.

Você tem certeza que o arquivo jar tah setado certo no classpath.

rocha
criei esta classe para testar:
/**
 *
 * @author  RodrigoR
 */
import java.sql.*;

public class Conexao{
    static private Connection conexao;

    public static void main(String[] arg){

       System.out.println("passo1"); 
	 try{
	System.out.println("passo2");
           Class.forName("com.mysql.jdbc.Driver");
	System.out.println("passo3");
           conexao = DriverManager.getConnection("jdbc:mysql://localhost/sisrv");
			System.out.println("Deu certo!!!");
		}
		catch ( Exception e ) {
            System.out.println("Erro!!"+e.getMessage() );
		}
    }

    }

O resultado é:

passo1
passo2
Erro!!com.mysql.jdbc.Driver

Rafael_Steil

No exemplo vc nao passou username nem senha? nao tem mesmo? o mysql tem um certo historico de problemas para conectar na base de dados sem login e senha atraves de jdbc. A string completa de conexao seria

jdbc:mysql://localhost/db?user=Blah&password=Bleh

Rafael

Rafael_Steil

Mude

}
catch ( Exception e ) {
    System.out.println("Erro!!"+e.getMessage() );
}

para simplesmente

}
catch ( Exception e ) {
    e.printStackTrace();
}

Note tambem que vc precisa ter certeza que o .jar do connector/j esta no classpath. Se voce estiver executando via linha de comando, tente assim:

java -cp .;c:\dir\do\mysql-connector-j-versao.jar Programa

Rafael

rocha

O arquivo q está nessa URL:

http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.1.7.zip/from/pick

já é o driver?

rocha

para simplesmente

}
catch ( Exception e ) {
    e.printStackTrace();
}

Mudei e o erro foi:
[i]

passo1

passo2

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at Conexao.main(Conexao.java:17)

[/i]
Rafael_Steil

Entao, o erro mostra claramente que vc nao esta com o driver no classpath. Faca como mostrei na mensagem anterior que ira funcionar.

Rafael

rocha

Rafael Steil:
Entao, o erro mostra claramente que vc nao esta com o driver no classpath. Faca como mostrei na mensagem anterior que ira funcionar.

Rafael

fiz e deu o seguinte erro:

[i]

C:>java -cp .;c:\tomcat5\common\lib\mysql-connector-java-3.1.7-bin.jar Conexao

passo1

passo2

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at Conexao.main(Conexao.java:17)

[/i]

rocha

E agora:

C:>java -cp .;C:\Tomcat 5.0\common\lib\mysql-connector-java-3.1.7-bin.jar Conexao

Exception in thread “main” java.lang.NoClassDefFoundError: 5/0\common\lib\mysql-
connector-java-3/1/7-bin/jar

Rocha

Rafael_Steil

rocha:
E agora:

C:>java -cp .;C:\Tomcat 5.0\common\lib\mysql-connector-java-3.1.7-bin.jar Conexao

Exception in thread “main” java.lang.NoClassDefFoundError: 5/0\common\lib\mysql-
connector-java-3/1/7-bin/jar

Rocha

Isso aconteceu pq vc tem um espaco em branco na estrutura de diretorios.

Rafael

rocha

E agora isso:

C:>java -cp .;C:\Tomcat5\common\lib\mysql-connector-java-3.1.7-bin.jar Conexao

passo1

passo2

passo3

java.sql.SQLException: Access denied for user: root@localhost (Using password:

YES)

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

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

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

at com.mysql.jdbc.Connection.createNewIO(Connection.java:1768)

at com.mysql.jdbc.Connection.<init>(Connection.java:430)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java

:268)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at Conexao.main(Conexao.java:19)

C:>

rocha

Consegui Valeu Rafael!!!11

Tche

Cara tava buscando isso aqui mas não consegui, usar o netBeans muda alguma coisa?

Criado 1 de março de 2005
Ultima resposta 22 de fev. de 2008
Respostas 14
Participantes 5