First at all comme je suis en train de coder un exercice en java, je pense que l'erreur provient de mon code ... que je relis. J'obtiens une erreur

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 receive any packets from the server.

J'essaie alors de me connecter sans succès via l'onglet Services histoire de constater que ce n'est pas mon code qui est la cause du problème mais ... heu ... peut-être bien le driver MySQL. J'essaie mysql-connector-java-5.1.12-bin.jar en lieu et place de mysql-connector-java-5.1.6-bin.jar mais rien ni fait, j'obtiens toujours la même erreur; à savoir un Network unreachable.

Bizarre car je travaille en local. Le problème se pose que je sois connecté ou pas. Mon serveur MySQL est lançé et je parviens à m'y connecter. De plus, un telnet localhost 3306 fonctionne très bien .... Je reste perplexe.

Tant pis, je travaillerai avec JavaDB ... et le problème est le même ! Toujours ce Network unreachable

Après avoir compulsé et cherché sur le net, j'obtiens la solution;

 echo 0 > /proc/sys/net/ipv6/bindv6only 

Il faut savoir que cette solution est temporaire (jusqu'au prochain reboot). Pour la rendre permanente, éditez le fichier /etc/sysctl.d/bindv6only.conf

cat /etc/sysctl.d/bindv6only.conf
# (...) comments 
net.ipv6.bindv6only=0

Une petite explication

(La suite doit être confirmée, ce n'est pour l'instant que suppositions)

Ceci se base sur la cohabitation entre IPv4 et IPv6 [1]. Par défaut le système fait une sorte de mapping entre IPv6 et IPv4.

La mise à jour du noyau que je viens de faire (Debian/Squeeze avr 2010) à changé les paramètres par défaut pour les applications clients/serveurs.

Si j'ai bien compris Java décide de donner l'adresse IPv6 suivie de l'adresse IPv4 lorsque l'on veut faire une connexion client/serveur ... ce qui n'est pas le comportement par défaut du noyau (du moins pour une Debian Squeeze).

Je dois donc dire que mon noyau doit continuer à gérer ses socket en IPv6/IPv' ...

à confirmer/compulser/infirmer/développer/...

Notes

[1] Il faut vraiment que je commence à m'informer sur IPv6