Journal mysql/tomcat: IP vs localhost

Posté par  (site web personnel) .
Étiquettes : aucune
0
29
mar.
2004
Le titre ne veut pas dire grand chose, mais tous les mots clés y sont.

J'ai un problème incompréhensible lors de l'accès à mysql par tomcat.

J'ai un bean qui initialise la connexion entre tomcat et mysql, le paramètre problématique étant l'url de la connexion: "jdbc:mysql://localhost:3306/appli"

Après un reboot, cette url causait une erreur, c'est à dire que la liaison entre mysql et tomcat n'était pas faite. Cela se faisait sentir au premier accès à la base, qui nous rendait un joli nullPointerException. L'url a du être remplacée par "jdbc:mysql://212.xxx.xxx.xxx:3306/appli", c'est à dire qu'il a fallu mettre l'adresse IP à la place de localhost, sans que l'on comprenne pourquoi, alors qu'a priori aucune modification en rapport avec ça n'a eu lieu.

Tout allait bien jusqu'à un autre reboot, après lequel il a fallu remettre l'ancienne ligne, avec localhost, toujours sans que l'on comprenne pourquoi.

Les recherches sur google, les sites de mysql et tomcat n'ont pas apporté de solution.

Voila la configuration de la machine:

redhat 7.2
mysql 3.23
tomcat4 4.1.10
j2sdk 1.4.0

Quelqu'un saurait-il m'expliquer pourquoi il faut mettre parfois localhost, parfois l'adresse IP? J'aimerai réussir à faire en sorte que ça marche à tous les coups.

Merci
  • # Re: mysql/tomcat: IP vs localhost

    Posté par  . Évalué à 1.

    Tu as quoi quand tu tapes:

    $ netstat -an | grep 3306

    ?

    grrrreg
    • [^] # Re: mysql/tomcat: IP vs localhost

      Posté par  (site web personnel) . Évalué à 1.

      J'obtiens plusieurs lignes du type:

      tcp 0 0 127.0.0.1:43244 127.0.0.1:3306 TIME_WAIT
      tcp 0 0 127.0.0.1:43245 127.0.0.1:3306 ESTABLISHED
      tcp 0 0 127.0.0.1:43241 127.0.0.1:3306 ESTABLISHED
      tcp 1 0 127.0.0.1:34483 127.0.0.1:3306 CLOSE_WAIT

      Ça ne me semble pas trop mal.

      Le port est ouvert, le problème c'est juste que parfois je dois spécifier localhost pour m'y connecter, et au reboot suivant l'adresse IP de la machine. Ça me surprend beaucoup.
  • # Re: mysql/tomcat: IP vs localhost

    Posté par  . Évalué à 1.

    essayes avec 127.0.0.1 comme IP ?
    • [^] # Re: mysql/tomcat: IP vs localhost

      Posté par  (site web personnel) . Évalué à 1.

      Ça avait déjà été essayé au précédent reboot, et ça n'avait pas été concluant.

      Une chose étrange à ce coup ci:
      En java (tomcat), je dois me connecter à l'url avec localhost, sinon ça ne marche pas (pour le reboot courant, en tout cas).

      Par contre, si je veux me connecter à mysql en ligne de commance, je dois mettre l'option -h localhost.localdomain.
      localhost, l'adresse IP, le nom de la machine ou le FQDN ne suffisent pas.
      • [^] # Re: mysql/tomcat: IP vs localhost

        Posté par  . Évalué à 1.

        En vrac :
        regarde du coté du fichier /etc/hosts, de hostname (hostname -f)
        Ensuite verifie sur quelles adresses ecoute mysql : netstat -plat | grep mysql
        Ah, et verifie par un ifconfig que ton interface lo est bien up, et puis ton iptable aussi ptet.
        • [^] # Re: mysql/tomcat: IP vs localhost

          Posté par  (site web personnel) . Évalué à 1.

          C'est bien pour ça que je vous fait appel. Tout me semble bon:

          $ cat /etc/hosts
          # that require network functionality will fail.
          127.0.0.1 localhost localhost.localdomain
          212.xxx.xxx.xxx aber aber.sib.fr

          $ ifconfig

          => eth0 et lo sont up

          $ hostname -f
          aber

          $ hostname
          aber.sib.fr

          tiens, ça ne devrait pas être le contraire?

          $ domainname
          (none)

          Bon, ça fait déjà ça à revoir.
          • [^] # Re: mysql/tomcat: IP vs localhost

            Posté par  (site web personnel) . Évalué à 2.

            Dans mon /etc/hosts les FQDN sont écrits avant les alias :

            Exemple:
            [quote]
            192.168.0.2 mamachine.mondomaine.org mamachine unautrealiaspourmamachine
            [/quote]

            et j'obtiens :

            $ hostname
            mamachine
            $ hostname -f
            mamachine.mondomaine.org

            Ce doit donc être ca ton pbm.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.