Toon posts:

[Java/MySQL] Cannot connect to MySQL server on localhost..

Pagina: 1
Acties:
  • 1.281 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo

Ik ben aan het proberen om een mysql database (4.1) aan een java applicatie te kopelen. Ik heb de mysql-connector/J Versie 2.0.14 gedownload en als Library toegevoegd in JBuilder. Ik had eerst versie 3.x geprobeerd maar deze gaf contstant een error. Het probleem is dat ik geen verbinding kan krijgen met de database. Ik krijg geen errors vanuit java. Het vreemde is dat als ik een foute user en / of pass invoer ik de volgende melding krijg:

SQLException: Invalid authorization specification: Access denied for user 'thbnder'@'localhost' (using password: YES)
SQLState: 28000
VendorError: 1045

En als ik de het goede wachtwoord en gebruikers naam in voer ik de volgende melding krijg:

SQLException: Cannot connect to MySQL server on localhost:3306. Is there a MySQL server running on the machine/port you are trying to connect to? (java.lang.NumberFormatException)
SQLState: 08S01
VendorError: 0

Op een of ander manier kan ik dus wel een verbinding maken anders kan ie geen melding geven dat mijn login gegevens kloppen maar als deze wel kloppen zegt ie dat er geen server is. De user waarmee ik probeer in te loggen heeft de volgende rechten:

GRANT ALL PRIVILEGES ON *.* TO 'thunder'@'localhost' IDENTIFIED BY PASSWORD '17a6df113a05d957'

Ik weet in iedergeval zeker dat de MySQL server werkt want ik kom met php overal bij. De MySQL server draait ook gewoon op de standaard poort (3306). Dus ik denk dat het probleem toch nog ergens bij java ligt.

Heeft iemand een idee waar het probleem ligt?

De java code:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    try
    {
      // The newInstance() call is a work around for some
      // broken Java implementations

      Class.forName("com.mysql.jdbc.Driver").newInstance();
    }
    catch (Exception ex)
    {
      // handle the error
    }
  }

    try
    {
      //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test?user=thunder&password=password");
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "thunder", "password");
     // Do something with the Connection
     }
     catch (SQLException ex)
     {
      // handle any errors
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
    }

  • The-MeLLeR
  • Registratie: Juni 2004
  • Laatst online: 27-02 11:20

The-MeLLeR

3l33t

MySQL heeft sinds versie 4.1 een andere password encryptie. Grote kans dat het daaraan. ligt.
Doe eens ex.printStackTrace() op regel 22 (dus na je catch) en post die.

[ Voor 2% gewijzigd door The-MeLLeR op 15-07-2005 13:17 . Reden: hoofdletters :) ]


Verwijderd

Topicstarter
Dan krijg ik de volgende error:
java.sql.SQLException: Cannot connect to MySQL server on localhost:3306. Is there a MySQL server running on the machine/port you are trying to connect to? (java.lang.NumberFormatException)

at com.mysql.jdbc.Connection.connectionInit(Unknown Source)

at com.mysql.jdbc.jdbc2.Connection.connectionInit(Unknown Source)

at com.mysql.jdbc.Driver.connect(Unknown Source)

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

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

at duplicate_images.Query.connect(Query.java:39)

at duplicate_images.Begin.paint(Begin.java:26)

at sun.awt.RepaintArea.paint(RepaintArea.java:298)

at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:196)

at java.awt.Component.dispatchEventImpl(Component.java:2663)

at java.awt.Container.dispatchEventImpl(Container.java:1213)

at java.awt.Component.dispatchEvent(Component.java:2497)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:339)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
edit: Ik heb trouwens m.b.v OLD_PASSWORD het wachtwoord gemaakt omdat die nieuwe niet wou werken.

[ Voor 4% gewijzigd door Verwijderd op 15-07-2005 13:37 ]


Verwijderd

kan je localhost pingen ?

[ Voor 170% gewijzigd door Verwijderd op 15-07-2005 14:01 ]


Verwijderd

Topicstarter
Pingen werkt. Zoals ik al zij ik werk al een hele tijd met PHP en MySQL onder Apache op localhost en dat werkt perfect. Ik kom ook gewoon in de command line van MySQL etc daarom snap ik ook niet waar het aan kan liggen..

edit: Ik heb ook geen Firewall op die windows firewall na maar die heb ik net eens uitgezet en dat maakte ook geen verschil.

[ Voor 69% gewijzigd door Verwijderd op 15-07-2005 14:08 ]


  • momania
  • Registratie: Mei 2000
  • Laatst online: 19:39

momania

iPhone 30! Bam!

Ik denk dat je met versie 2.0 van de connector toch een te oude versie gebruikt hoor.

Probeer het nog eens met http://dev.mysql.com/downloads/connector/j/3.1.html
En gebruik dan als driver: org.gjt.mm.mysql.Driver

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Topicstarter
Exception occurred during event dispatching:
java.lang.NoClassDefFoundError: java/sql/Savepoint
Met deze error ben ik gister de hele middag mee bezig geweest. Uiteindelijk kwam ik er achter dat die savepoint wel in JDK 4.1 zat en niet in 3.1 of iets in die richting. Tip was om het te upgraden en dan zou het allemaal werken. Ik heb JBuilder op mijn laptop staan voor school en ik heb geen idee wat er dan veranderd. 't moet natuurlijk niet zo zijn dat als we straks een project aan het maken zijn dat ik dan iets niet kan draaien omdat het in 3.1 zo moet in in 4.1 weer anders.

Dit is de reden dat ik dat niet gedaan had. Toen heb ik nog eens wat verder gezocht en toen vond ik dus die oudere versie van de connector en deze werkt met het MySQL protecol 9 en 10. En MySQL 4.1 gebruikt protecol 10 dus dat zou moeten werken lijkt me.

[ Voor 44% gewijzigd door Verwijderd op 15-07-2005 17:43 ]

Pagina: 1