telnet 127.0.0.1 3306 - Connection refused - WARUM ????

MySQL, PostgreSQL, SQLite
fids3
Posts: 22
Joined: 2005-12-26 14:39

telnet 127.0.0.1 3306 - Connection refused - WARUM ????

Post by fids3 » 2005-12-26 15:06

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 ???

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????

Post by Roger Wilco » 2005-12-26 15:10

fids3 wrote:Wenn mir jemand sagen könnte, wo hier das Problem liegt, wäre ich sehr dankbar.
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
Posts: 22
Joined: 2005-12-26 14:39

Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????

Post by fids3 » 2005-12-26 15:14

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 ?

fids3
Posts: 22
Joined: 2005-12-26 14:39

Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????

Post by fids3 » 2005-12-26 15:19

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
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????

Post by Roger Wilco » 2005-12-26 15:22

Code: Select all

netstat -tulpen|grep mysqld
Auf welchem Interface der mysqld lauscht, kannst du in der /etc/my.cnf oder /etc/mysql/my.cnf einstellen. Dort sollte, wenn du wirklich via TCP/IP auf MySQL zugreifen willst, keinesfalls "skip-networking" zu finden sein. Alles weitere erklärt dir das MySQL-Handbuch deines Vertrauens.

fids3
Posts: 22
Joined: 2005-12-26 14:39

Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????

Post by fids3 » 2005-12-26 15:35

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.

fids3
Posts: 22
Joined: 2005-12-26 14:39

Re: telnet 127.0.0.1 3306 - Connection refused - WARUM ????

Post by fids3 » 2005-12-26 15:47

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.