Avatar billede mikmakmuk Nybegynder
09. april 2003 - 21:12 Der er 28 kommentarer og
1 løsning

MySQL driver til linux

Jeg har vist nok sat alting rigtigt op. Mit problem er bare at det ikke virker. Jeg mangler en driver til MySQL. Jeg kører mit site under tomcat
Avatar billede arne_v Ekspert
09. april 2003 - 23:16 #1
Du kan bruge den samme JDBC driver på Linux og Windows.

(hvis du ikke har den kan den downloades fra www.mysql.com under
Connector/J)
Avatar billede mikmakmuk Nybegynder
09. april 2003 - 23:20 #2
det er også det jeg prøver men det virker ikke
Avatar billede arne_v Ekspert
09. april 2003 - 23:23 #3
Du har downloadet ZIP'en, UNZIP'et og anbragt JAR'en i din classpath
(enten server lib eller web app lib) ?

Og det virker ikke ?

Hvilken fejl får du ?
Avatar billede mikmakmuk Nybegynder
09. april 2003 - 23:27 #4
skal den ikke bare ligge i mit java biblioket
Avatar billede arne_v Ekspert
09. april 2003 - 23:30 #5
Det ved jeg faktisk ikke om man kan.

Jeg ved at det virker hvis JAR filen ligger i enten server lib
eller web app lib.
Avatar billede mikmakmuk Nybegynder
09. april 2003 - 23:31 #6
Jeg har lagt den her

/var/tomcat4.1/common/lib og /var/tomcat4.1/shared/lib
Avatar billede mikmakmuk Nybegynder
09. april 2003 - 23:41 #7
jeg bruger mm.mysql-2.0.4-bin.jar
Avatar billede arne_v Ekspert
10. april 2003 - 07:57 #8
mm antyder at den ikke er helt ny, men skidt pyt den bør stadig virke.
Avatar billede arne_v Ekspert
10. april 2003 - 07:58 #9
/var/tomcat4.1/shared/lib er helt fint ifølge Tomcat dokumentationen.
Avatar billede arne_v Ekspert
10. april 2003 - 07:58 #10
Så hvilken fejl får du ?
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:06 #11
java.lang.NullPointerException
    at util.Databaseforbindelsemysql.select(Databaseforbindelsemysql.java:30)
    at Showdata.doGet(Showdata.java:48)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:466)
    at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    at java.lang.Thread.run(Thread.java:536)
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:12 #12
Er det her en mere tidssvarende DB driver?

mysql-connector-java-3.0.7-stable-bin.jar
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:15 #13
Og kan jeg hvis jeg vælger at bruge den stadig skrive sådan

Databaseforbindelsemysql d = new Databaseforbindelsemysql("jdbc:mysql://URL/DB?user=USER&password=PASSWORD","org.gjt.mm.mysql.Driver");

eller skal org.gjt.mm.mysql.Driver være noget andet?
Avatar billede arne_v Ekspert
10. april 2003 - 08:20 #14
Ja - den er nyere.
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:21 #15
com.mysql.jdbc.Driver
Avatar billede arne_v Ekspert
10. april 2003 - 08:22 #16
Jeg mener at org.gjt.mm.mysql.Driver stadig virker med den nye driver, men
at man normalt bruger det mere standardiserede com.mysql.jdbc.Driver.
Avatar billede arne_v Ekspert
10. april 2003 - 08:23 #17
NullPointerException antyder at enten Class.forName eller
DriverManager.getConnection er fejlet.
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:24 #18
Det vil sige at jeg kan skrive

Databaseforbindelsemysql d = new Databaseforbindelsemysql("jdbc:mysql://URL/DB?user=USER&password=PASSWORD","com.mysql.jdbc.Driver");
Avatar billede arne_v Ekspert
10. april 2003 - 08:24 #19
Find den kode hvor du kalder de 2 og check at der i tilfælde
af en Exception bliver lavet f.eks. en:
  e.printStackTrace();
og så checker du Tomcat log/output får fejl.
Avatar billede arne_v Ekspert
10. april 2003 - 08:25 #20
Med lidt held finder du så en fejl-meddelelse som du kan bruge til
videre trouble-shooting.
Avatar billede arne_v Ekspert
10. april 2003 - 08:26 #21
Ja.

Databaseforbindelsemysql d = new Databaseforbindelsemysql("jdbc:mysql://URL/DB?user=USER&password=PASSWORD",
"com.mysql.jdbc.Driver");

bør virke med en ny MySQL JDBC driver.
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:30 #22
Jeg tror det er noget med PRIVILEGES til DB'en. Grunden til at jeg tror det er at det virker fint i windows
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:34 #23
Jeg skrev

USE db;
GRANT ALL PRIVILEGES ON db.* TO 'USER'@localhost IDENTIFIED BY 'PASSWORD';
Avatar billede arne_v Ekspert
10. april 2003 - 08:35 #24
Meget muligt.

SÅ vidt jeg ved er MySQL er speciel ved at man skal give bruger@maskine
adgang d.v.s. at det betyder noget hvilken maskine der connectes fra.
Avatar billede arne_v Ekspert
10. april 2003 - 08:40 #25
Kører MySQL også på samme Linux box dom Tomcat ?
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:40 #26
Jeg syntes at 'USER'@localhost ser noget suspect ud 'USER@localhost' ville da være noget mere logisk
Avatar billede arne_v Ekspert
10. april 2003 - 08:41 #27
Det kan du iøvrigt havet ret i.
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 08:42 #28
Okay nu bliver jeg nød til at vide hvad I mener med Linux box :-) Det jeg gør er at logge ind som root og starte tomcat og MySQL
Avatar billede mikmakmuk Nybegynder
10. april 2003 - 13:36 #29
Jeg har fået det til at virke. Det var
Databaseforbindelsemysql d = new Databaseforbindelsemysql("jdbc:mysql://URL/DB?user=USER&password=PASSWORD",
"com.mysql.jdbc.Driver");

URL'en var angivet som min eksterne IP, hvilket virker fint i windows. Den har jeg så ændret til den IP som serveren kører på. Grunden til at jeg ikke forstår hvad problemet var er at min router peger på serveren. Hmmm nå men nu virker det altså. Tak for hjælpen :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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