Ich kämpfe schon seit ein paar Tagen mit dem Problem dass ich via Java keine Verbindung zu meiner lokalen mysql-Datenbank bekomme. Zuerst mal ein paar Infos zu den installierten Paketen:
Dann hab ich ein kleines Java-Testprogramm gescheiben um mich mit der DB zu verbinden, der code sieht folgendermaßen aus:> dpkg-query -W --showformat='${Status} ${Version}\t${Package}\n' | grep "^install ok" | grep -e "mysql" -e "java"
install ok installed 0.34 java-common
install ok installed 7 javascript-common
install ok installed 4.012-1+b1 libdbd-mysql-perl
install ok installed 5.1.10+dfsg-2 libmysql-java
install ok installed 5.1.41-3 libmysqlclient16
install ok installed 5.1.41-3 mysql-client
install ok installed 5.1.41-3 mysql-client-5.1
install ok installed 5.1.41-3 mysql-common
install ok installed 5.1.41-3 mysql-server
install ok installed 5.1.41-3 mysql-server-5.1
install ok installed 1:3.1.1-8 openoffice.org-java-common
install ok installed 5.2.11.dfsg.1-2 php5-mysql
install ok installed 6-16-1 sun-java6-bin
install ok installed 6-16-1 sun-java6-jdk
install ok installed 6-16-1 sun-java6-jre
install ok installed 6-16-1 sun-java6-plugin
Code: Alles auswählen
import java.sql.*;
public class DBDemo
{
public static void main(String[] args) throws
ClassNotFoundException,SQLException
{
// Class.forName(xxx) loads the jdbc classes and
// creates a drivermanager class factory
Class.forName("com.mysql.jdbc.Driver");
// Now try to connect
Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/DBNAME",
"USER","PASSWORD");
System.out.println("It works !");
c.close();
}
}
Für $CLASSPATH ist ":/usr/share/java/mysql.jar" gesetzt. Wenn ich jetzt mein kleines Programm übersetze ("> javac DBDemo.java") und danach ausführe ("> java DBDemo") bekomm ich folgende Meldungen:
Danach kann man zwar im Netz suchen, findet aber zu viel und nichts Vernüftiges ... bzw nichts was mir geholfen hat wie z.B. localhost durch 127.0.0.1 ersetzen usw. Die Verbindung zur DB via mysqlclient und php funktioniert mit der selben USER/PASSWORD/DBNAME Kombination. Kann mir da jemand helfen? Benötige ich noch zusätzliche Pakete, sind da vielleicht inkopatible Pakete installiert oder stimmt mein Javacode nicht? Bin für jede Hilfe dankbar.Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2214)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:781)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at DBDemo.main(DBDemo.java:13)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2140)
... 12 more
Caused by: java.net.SocketException: Network is unreachable
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:525)
at java.net.Socket.connect(Socket.java:475)
at java.net.Socket.<init>(Socket.java:372)
at java.net.Socket.<init>(Socket.java:215)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:254)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:292)
... 13 more
lg Max