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.net.SocketException)
SQLState: 08S01
VendorError: 0
Als MySQL Server läuft im Hintergrund WinMySQLAdmin 1.3 unter Win2k. Dieser
zeigt mir folgenden Treiber an:
Driver Version: 2.50
Driver: c:\...\myodbc.dll
API Level: 2
SETUP: c:\...\myodbc.dll
SQL Level: 1
Mittels php gelingt es mir auf die selbe Datenbank zuzugreifen. An der kann
es also nicht liegen. Port 3306 ist auch korrekt.
Anbei noch n Codeschnipsel:
try { System.out.println("Treiber laden");
Class.forName("org.gjt.mm.mysql.Driver").newInstance(); }
catch (Exception e) { System.err.println("keinen Treiber geladen");
e.printStackTrace(); }
// Da gibts keine Fehlermeldung
try { System.out.println("Verbindung aufbauen"); String url =
"jdbc:mysql://localhost/sample";
conn = DriverManager.getConnection(url, "",""); }
catch (SQLException sqle) { System.out.println("SQLException: " +
sqle.getMessage());
System.out.println("SQLState: " + sqle.getSQLState());
System.out.println("VendorError: " + sqle.getErrorCode());
sqle.printStackTrace(); }
// Fehlermeldung siehe oben
Ich hoffe es kann mir jemand weiterhelfen.
Daniel
Mit dem geposteten Java-Code müsste es laufen.
Läuft vielleicht eine Firewall, die die Verbindung verhindert (aber den
PHP Zugriff zulässt)?
Gruss
--
Robert Mahnke
Hompage und FAQ von de.comp.lang.java:
www.dclj.de
Eine Firewall läuft. Die blockiert aber nur die Zugriffe auf den Apache
Server von Außen, dürfte also keinen Einfluß auf mein Problem haben.
Aber auch ohne Firewall kommt der selbe Fehler. Vielleicht sollte ich
nochmal den restlichen Fehlercode aus dem Stack posten. Den hatte ich vorhin
nämlich nicht mit Anzeigen lassen. Vielleicht gibt das ja mehr Aufschluß.
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.net.SocketException)
at org.gjt.mm.mysql.Connection.connectionInit(Unknown Source)
at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Unknown Source)
at org.gjt.mm.mysql.Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at SimpleQuery.main(SimpleQuery.java:31)
Daniel
Dein Treiber scheint keine Verbindung zu bekommen, ich würde sagen: Bist
du sicher, dass MySql läuft? Aber wenn es mit php (sicher?) funktioniert...
Welche Treiberversion wird denn genutzt? Vielleicht ein Fehler in einer
ganz neuen Version? Oder ist die vielleicht zu alt?
> Welche Treiberversion wird denn genutzt? Vielleicht ein Fehler in einer
> ganz neuen Version? Oder ist die vielleicht zu alt?
>
mm.mysql-2.0.14 (für Java)
myodbc-2.50.39 (3.51.03 erkennt der MySQL Server nicht) als ODBC Treiber
mysql-3.23.51 als MySQL Server
(zusätzlich PHP4.2.2 und Apache-2.0.39(win32))
Gruß Daniel
Bei mir läuft 2.0.12 ohne Probleme, kann mir aber kaum vorstellen, dass
es an 2.0.24 liegt.
> myodbc-2.50.39 (3.51.03 erkennt der MySQL Server nicht) als ODBC Treiber
Brauchst du (zumidest für den Zugriff aus Java) nicht, du greifst nicht
über odbc zu.
> mysql-3.23.51 als MySQL Server
> (zusätzlich PHP4.2.2 und Apache-2.0.39(win32))
Da fällt mir auch nix mehr zu ein.
Sorry
--
Robert Mahnke
Gruß
Daniel
> http://localhost/test.php greift auf die Datenbank ohne Fehler zu.
Baut das eine Verbindung zum Server über Netzwerk auf? [skip-networking]
ist nicht in der my.cnf?
MfG Markus
Also eine my.cnf gibts bei mir auch nicht, nur my.ini und die gehört zum
MySQL Server, enthält folgenden Eintrag:
[mysqld]
basedir=C:/mysql
#bind-address=169.254.127.121
datadir=C:/mysql/data
#language=C:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=C:/mysql/bin/mysqld-max-nt.exe
user=Daniel
password=***
Ich hab das ganze Java-Problem grad nochmal auf nem Zweitrechner mit
Win98+PWS getestet. Hier
funktioniert alles. Ich glaub ich sollte mir nochmal die Apache
Konfigurationdatei anschauen. Sosnt weiß
ich auch nicht mehr weiter.
Gruß Daniel
>
> [mysqld]
> basedir=C:/mysql
> #bind-address=169.254.127.121
> datadir=C:/mysql/data
> #language=C:/mysql/share/your language directory
> #slow query log#=
> #tmpdir#=
> port=3306
> #set-variable=key_buffer=16M
> [WinMySQLadmin]
> Server=C:/mysql/bin/mysqld-max-nt.exe
> user=Daniel
> password=***
>
> Ich hab das ganze Java-Problem grad nochmal auf nem Zweitrechner mit
> Win98+PWS getestet. Hier
> funktioniert alles. Ich glaub ich sollte mir nochmal die Apache
> Konfigurationdatei anschauen. Sosnt weiß
> ich auch nicht mehr weiter.
Über einen anderen Rechner scheint es ja mit Java zu funktionieren, also
würde ich versuchen, statt localhost in
String url = "jdbc:mysql://localhost/sample";
den Rechnernamen bzw. die IP-Adresse des DB-Servers zu verwenden.
Georg
Hab ich alles schon versucht. Bringt auch kein Ergebnis. Glaub auch nicht
mehr,
das das ein javasspezifisches Problem ist.
Gruß
Daniel