Ich möchte aus einer Tomcat Anwendung heraus per JDBC Treiber auf die MySQL DAtenbank zugreifen und bekomme folgende Exception.
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused
STACKTRACE:
java.net.SocketException: java.net.ConnectException: Connection refused
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2666)
at com.mysql.jdbc.Connection.<init>(Connection.java:1474)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at org.apache.tomcat.dbcp.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at de.riechert.fids3.persistence.JDBCPersistor.obtainConnection(Unknown Source)
"catalina.out" 6389L, 428737C
Interessant ist auch, dass auch ein telnet vom localhost auf port 3306 fehlschlägt. Die Ursache sollte wohl dieselbe sein.
Auf meinem Window XP Entwicklungsrechner funktioniert alles.
Meine Umgebung
Tomcat 5.5.13
JDK 1.5.0_06
JDBC Driver
mysql-connector-java-3.1.11-bin.jar
DataSource config in server.xml
<Resource name="jdbc/Fids3DB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="fids3" password="--------------" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/fids3?autoReconnect=true"/>
</Context>
Wenn mir jemand sagen könnte, wo hier das Problem liegt, wäre ich sehr dankbar. Gibt es hier vielleicht irgendweiche Probleme mit Plesk, PHP oder sonst irgendwas 1&1 spezifischem ???
telnet 127.0.0.1 3306 - Connection refused - WARUM ????
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????
Vermutlich zwischen Keyboard und Stuhl. Ich könnte wetten, dass dein mysqld nur auf einem UNIX-Socket, nicht aber auf einem TCP-Socket lauscht...fids3 wrote:Wenn mir jemand sagen könnte, wo hier das Problem liegt, wäre ich sehr dankbar.
Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????
Es handelt sich um den standardmäßig auf dem root server installierten mysql server. (Bei mir version 4.0.18). Ich kenne jetzt keinen Unterschied zwischen einem TCP/IP und einem Unix-Socket. Wenn hier differenziert werden muss, wo kann ich dieses im mysql server einstellen ?
Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????
Das einzige was ich mir ggf. noch vorstellen könnte ist, dass es vielleicht ein Connection-Limit gibt, welches ausgereizt ist und erhöht werden müsste. Gibt es so was ?
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????
Code: Select all
netstat -tulpen|grep mysqldRe: telnet 127.0.0.1 3306 - Connection refused - WARUM ????
Ich glaube es dämmert mir langsam. Wahrscheinlich darf ich nicht den Window JDBC Treiber verwenden, da dieser klassisch auf die Portnummer geht, sondern es wird wohl nocht eine spezielle Unix Treiber-Version geben, die dann über UNIX Socket special file
'/var/lib/mysql/mysql.sock' Kontakt aufnimmt. Das erscheint mir plausibel und würde die Sache erklären.
Erstmal vielen Dank.
'/var/lib/mysql/mysql.sock' Kontakt aufnimmt. Das erscheint mir plausibel und würde die Sache erklären.
Erstmal vielen Dank.
Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????
Es verhält sich doch etwas anders:
MYSQL-Doku-Zitat:
MySQL Connector/J can only communicate with MySQL using TCP/IP, as Java does not support Unix domain sockets. TCP/IP communication with MySQL might be affected if MySQL was started with the "--skip-networking" flag, or if it is firewalled.
Ich habe also in /etc/my.cnf 'skip-networking' auskommentiert. Danach geht's. Der aktuelle Java-JDBC-Treiber unterstützt eben keine Unix-Sockets.
MYSQL-Doku-Zitat:
MySQL Connector/J can only communicate with MySQL using TCP/IP, as Java does not support Unix domain sockets. TCP/IP communication with MySQL might be affected if MySQL was started with the "--skip-networking" flag, or if it is firewalled.
Ich habe also in /etc/my.cnf 'skip-networking' auskommentiert. Danach geht's. Der aktuelle Java-JDBC-Treiber unterstützt eben keine Unix-Sockets.