Avatar billede phlip_19 Nybegynder
14. august 2003 - 20:32 Der er 32 kommentarer og
1 løsning

MySQL driver

Jeg har nu et stykke tid rodet lidt med at få MySQL til at virker sammen med Java...
men... har tendenser til at tro at den ikke rigtigt finder driveren...

Java kode:

import java.sql.*;

public class Tst
{
  public static void main(String[] arg) throws Exception
  {
      Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection("jdbc:mysql://db01", "", "");
        System.out.println("conn = " + conn);

      Statement stmt = conn.createStatement();
     
          System.out.println("stmt = " + stmt);
   
   
    stmt.executeUpdate("create table KUNDER (NAVN varchar(32), KREDIT float)" );
   
    stmt.executeUpdate("insert into KUNDER values('Jacob', -1799)");
  }
}


Compilering OK...

FEJL! ved exequering af programmet:
Exception in thread "main" java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at Tst.main(Tst.java:21)

HJÆLP!!!!!!!!!!
Avatar billede arne_v Ekspert
14. august 2003 - 20:38 #1
Prøv med:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/db01", "", "");

[eller et andet hostnavn hvis databasen ligger andetsteds]
Avatar billede arne_v Ekspert
14. august 2003 - 20:39 #2
Hvis det var classpath der var problemet så burde du få class not found
på Class.forName !
Avatar billede phlip_19 Nybegynder
14. august 2003 - 20:39 #3
Samme fejl!
Avatar billede phlip_19 Nybegynder
14. august 2003 - 20:40 #4
oki... men den kommer jo med "No suitable driver"...
Avatar billede arne_v Ekspert
14. august 2003 - 20:42 #5
Den leder efter driver udfra connection URL.
Avatar billede arne_v Ekspert
14. august 2003 - 20:42 #6
Hvilken version af MySQL ?

Hvilken version af MySQL JDBC driver ?
Avatar billede phlip_19 Nybegynder
14. august 2003 - 20:43 #7
hvad kunne fejlen være??
Avatar billede phlip_19 Nybegynder
14. august 2003 - 20:43 #8
mysql-4.0.14b
mysql-connector-java-3.0.8-stable
Avatar billede phlip_19 Nybegynder
14. august 2003 - 20:45 #9
kan det evt. være fordi jeg ikke har defineret user og pass til Conection... har som sagt ikke tideligere abejder med dette og aldrig leget med db før!!!
Avatar billede arne_v Ekspert
14. august 2003 - 20:46 #10
I så fald er det ihvertfald en forkert fejl-meddelese fra driveren.

Men prøv det !
Avatar billede fsconsult.dk Nybegynder
14. august 2003 - 20:47 #11
prøv med:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/db01", "", "");
Avatar billede arne_v Ekspert
14. august 2003 - 20:48 #12
Prøv evt. med:

Class.forName("com.mysql.jdbc.Driver").newInstance();
Avatar billede _carsten Nybegynder
14. august 2003 - 20:56 #13
Mangler der ikke et portnr. ???????????????

Noget a la:

url = "jdbc:mysql://localhost:3306/databaseNavn";
dbDriver = "com.mysql.jdbc.Driver";

DriverManager.getConnection(databaseURL, username, password) ;
conn = DriverManager.getConnection( url, "username", "password") ;
Avatar billede _carsten Nybegynder
14. august 2003 - 21:00 #14
Noget bavl at skrive !

Sådan:

url = "jdbc:mysql://localhost:3306/databaseNavn";
dbDriver = "com.mysql.jdbc.Driver";
username = "";
password = "";

Class.forName( dbDriver ).newInstance();
conn = DriverManager.getConnection( url, username, password) ;
Avatar billede arne_v Ekspert
14. august 2003 - 21:06 #15
port 3306 burde være default.
Avatar billede phlip_19 Nybegynder
14. august 2003 - 21:24 #16
stadig samme fejl... kunne det have noget at gøre med retighederne til databasen??? og i så fald hvordan ændre jeg dem?
Avatar billede _carsten Nybegynder
14. august 2003 - 21:36 #17
Tja - hvis du kan åbne databasen med eksempelvis MySQL Front,
så jeg tror umiddelbart mere på placeringen af
din "mysql-connector-java-3.0.8-stable" og noget classpath-sjov,
selvom Arne godt nok ikke mener det.

Hvor har du placeret den ??
Avatar billede phlip_19 Nybegynder
14. august 2003 - 21:50 #18
c:\j2sdk1.4.2\jre\lib\ext\mysql-connector-java-3.0.8-stable-bin.jar
men hvad mener du lige med at åbne databasen med MySQL FOnt???
Avatar billede _carsten Nybegynder
14. august 2003 - 21:56 #19
MySql Front er en GUI til at arbejde med MySql databaser
og den hedder åbenbart nu "MySQL Control Center"
http://www.mysql.com/products/mysqlgui/index.html
Avatar billede arne_v Ekspert
14. august 2003 - 21:56 #20
Grunden til at jeg ikke tror på at det er det "sædvanelige" classpath
problem er den exception.

Class.forName skal smide en class not found exception, hvis den ikke
kan finde klassen.
Avatar billede arne_v Ekspert
14. august 2003 - 21:58 #21
Jeg har iøvrigt aldrig været særlig glad for lib/ext.

Kunen du prøve at angive jar-filen ekplicit i classpath bare
for at få det prøvet?
Avatar billede phlip_19 Nybegynder
14. august 2003 - 22:01 #22
hmmm... hvad fa.. kan det så være?
Avatar billede phlip_19 Nybegynder
14. august 2003 - 22:04 #23
har prøvet at erkælre den i classpath... ingen forskel
Avatar billede arne_v Ekspert
14. august 2003 - 22:07 #24
Og koden er nu:

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db01", "", "");

?
Avatar billede phlip_19 Nybegynder
14. august 2003 - 22:09 #25
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db01", "", "");

ligner meget godt
Avatar billede arne_v Ekspert
14. august 2003 - 22:09 #26
Har du brugernavn og password på MySQL ?

Hvis ja så prøv med følgende 2:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db01", "ditbrugernavn", "ditpassword");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db01?user=ditbrugernavn&password=ditpassword");
Avatar billede phlip_19 Nybegynder
14. august 2003 - 22:10 #27
jeg ved ikke om jeg har user og pass på MySQL... hvordan finder jeg ud af det?
Avatar billede arne_v Ekspert
14. august 2003 - 22:14 #28
Prøv og connect til den.

Nede i mysql\bin ligger der en mysql.exe som er et kommando linie tool.

Prøv og start det i en DOS box og se om den spørger efter password ?

Formentlig ikke - fordi hvis ikke du kender dem, så er de næppe sat !
Avatar billede phlip_19 Nybegynder
14. august 2003 - 22:16 #29
jeg starter den uden pass og user, så det er der jo så nok ikke!!!
Avatar billede arne_v Ekspert
14. august 2003 - 22:18 #30
Så er jeg ved at være blank.
Avatar billede phlip_19 Nybegynder
14. august 2003 - 22:19 #31
det er jeg ked af at høre...

men mange thx for din e forsøg
Avatar billede phlip_19 Nybegynder
14. august 2003 - 22:30 #32
Jeg har prøvet lidt frem og tilbage, og fandt ud af at det var den forkerte fil jeg kompilerede og prøvede med... det med //localhost/db01 virkede fint... spid lige et svar så du kan få dine velfortjænte point!!!
Avatar billede arne_v Ekspert
14. august 2003 - 22:33 #33
OK
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester