# Communications link failure due to underlying exception



## 6aholic (10. Jan 2006)

guten tag,


leider habe ich ein problem mit einer mysql- verbindung seitdem ich den linux server geupdatet habe...
mittlerweile hab ich mehrere ansätze gefunden, allerdings keiner funktionierte.

hier die fehlerausgabe:

connectToDatabase:com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED 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:151)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:280)
        at com.mysql.jdbc.Connection.createNewIO(Connection.java:1699)
        at com.mysql.jdbc.Connection.<init>(Connection.java:405)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at server.Server.connectToDatabase(Server.java:58)
        at server.Server.<init>(Server.java:39)
        at server.Server.main(Server.java:857)


** END NESTED EXCEPTION **


ich hab leider keine ahnung mehr was dies sein könnte und wie man das beheben kann.

danke für die hilfe.

so far.
6aholic.


----------



## Bleiglanz (11. Jan 2006)

> leider habe ich ein problem mit einer mysql- verbindung seitdem ich den linux server geupdatet habe...



wie was wo geupdated?

=> funzt Benutzername Kennwort auch noch an der Konsole?

=> läuft der mysqld überhaupt

=> wurde die Benutzerdatenbank verändert, GRANTS, usw.??


----------



## 6aholic (11. Jan 2006)

danke für dein interesse an meinem problem! 

geupdated habe ich das linux an sich.

dabei natürlich auch die datenbank neu eingerichtet.
ja, der task läuft. ja die rechte sind richtig eingestellt und das java- script zur verbindung sieht wie folgt aus:


```
private Connection connectToDatabase(String DB_name)
	{
		try
		{
// hier wurde auch der ip- stack auf v4 gesetzt....
		  String DRIVER = "com.mysql.jdbc.Driver";
		  String JDBC_URL = "jdbc:mysql://localhost:3306/";

		  Class.forName( DRIVER );
		  return DriverManager.getConnection( JDBC_URL + DB_name, "username", "password" );
		}
		catch( SQLException sqle )
		{
			System.out.println("connectToDatabase:" + sqle);
			return null;
		}
		catch ( ClassNotFoundException cnfe )
		{
			System.out.println("connectToDatabase:" + cnfe);
			return null;
		}
	}
```


ich danke!

so far.
6aholic.


----------



## Bleiglanz (11. Jan 2006)

also dann nochmal

welches Linux?

von wo nach wo upgedated??

wurde mysql upgedated??

kannst du an der Konsole mit $mysql -u meinusername -p noch Verbindung aufnehmen

wurde versehentliche eine my.cnf überschrieben?? dort musst du unter Umständen einen Eintrag skip-networking auskommentieren

$mysqlcheck --all-databases -u meinusername -p

ausgeführt? alles OK??

$mysqlcheck --auto-repair --all-databases -u meinusername -p


----------



## 6aholic (11. Jan 2006)

das ganze system wurde von einer 8er version suse auf 9.1 suse geupdated und dabei komplett formatiert.

da wurde dann sicher auch die aktuelle stable version von mysql genommen.
aktuell ist es eine: MySQL 4.0.18

wie gesagt, ja die verbindungen gehen.
von konsole & von php.

die my.cnf wurde mit sicherheit gelöscht und neu angelegt.
das mit dem skip networking sowie einer ipv- stack komplikation habe ich schon gehört.
ich werde den eintrag mal skippen, sobald ich mit meiner arbeit fertig bin.

check sowie die repairs machte ich mit phpmyadmin, alles roger.

die db läuft, java bzw. der treiber oder irgendwas dazwischen ist das problem :-/

vielen dank!

so far.
6aholic.


----------



## Bleiglanz (11. Jan 2006)

nein, das Problem ist, dass nichtmal ein Socket erstellt werden kann?

geh zur my.cnf und mach ein # vor das skip-networking


----------



## 6aholic (12. Jan 2006)

ich danke dir, lieber bleiglanz, sehr vielvielmals 

es funktionierte auf anhieb 

nun würd ich noch gern wissen, woher du aus den verworrenen stacktrace genau auf diesen fehler schließen konntest und was das skip-networking ist...

so far.
6aholic.


----------



## 6aholic (12. Jan 2006)

ich muss leider ein bisschen was zurück nehmen.

anfangs dachte ich es geht 100%ig.

connectToDatabase:java.sql.SQLException: Access denied for user: 'user@localhost.localdomain' (Using password: YES)

passwort und benutzername richtig eingetragen, neu kompiliert, gestartet und das problem exsistiert immer noch.
trotz richtigen eingaben von username / password bekomme ich ein access denied...

was mich wundert ist: @localhost.localdomain

ich versuchte es mit dem setproperties auf ipv4, nem 127.0.0.1....

einträge der /etc/hosts sehen recht normal aus...

;(

so far.
6aholic.


----------



## Bleiglanz (12. Jan 2006)

ganz einfach:

die erste Zeile im Stacktrace java.net.SocketException sagt dass keine Verbindung aufgebaut werden konnte

und das "skip-networking Problem" hab ich selber schon mal gehabt


----------



## Bleiglanz (12. Jan 2006)

und zum neuen Problem:

du hast wahrscheinlich das GRANT für user@localhost gemacht

und in /etc/hosts steht jetzt nach dem update localhost.localdomain

entweder neu GRANT en oder die /etc/hosts ändern

oder (SEHR unsicher) ein GRANT für user@%


----------



## 6aholic (12. Jan 2006)

ja, in der hosts steht:
127.0.0.1 localhost.localdomain localhost

wenn ich daraus jetzt
127.0.0.1 localhost localhost.localdomain

mache sollte es gehen, oder?

wie aktiviere ich dann die neue hosts? reboot?

so far.
6aholic.


----------

