Nom d'hôte PHP incorrect

12

Nous avons une application qui fonctionne depuis environ 2 ans maintenant sans aucun problème.

Ce matin, quand je suis arrivé sur le site, j'obtenais une erreur:

Session: connection failed

J'ai vérifié les connexions à la base de données, vérifié l'utilisateur, vérifié les subventions pour l'utilisateur, tout allait bien.

J'ai créé une page de test en utilisant les informations de connexion dans le fichier .inc.xml

Vous avez une erreur de connexion mysql.

Voici le fichier d'origine:

   <TYPE>mysql</TYPE>
        <HOST>dbl</HOST>
        <USER>dbuser</USER>
        <PASSWORD key="PUT A KEY HERE TO DECRYPT THE PASSWORD">password</PASSWORD>

Le nom d'hôte du serveur n'est pas dbl

J'ai changé la deuxième ligne en ceci:

   <TYPE>mysql</TYPE>
        <HOST>localhost</HOST>
        <USER>dbuser</USER>
        <PASSWORD key="PUT A KEY HERE TO DECRYPT THE PASSWORD">password</PASSWORD>

Ça se connectait bien.

Apporté la même modification au fichier .inc.xml d'origine et l'application était de sauvegarde et fonctionnait correctement.

Mes questions):

J'ai vérifié les journaux d'audit, les connexions, les requêtes, le système n'a pas été accessible depuis environ 3 semaines.

Le fichier .inc.xml a été modifié pour la dernière fois il y a plus d'un an.

Pourquoi l'application arrêterait-elle soudainement de prendre dbl comme hôte?

D'où vient ce nom d'hôte dbl?

Disposition du système:

[root@acpr-web-x ~]# cat /proc/version
Linux version 2.6.32-358.2.1.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Wed Feb 20 12:17:37 EST 2013

[root@acpr-web-x ~]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Aug 15 2014 03:02:07

[root@acpr-web-x ~]# php -v
PHP 5.3.3 (cli) (built: Oct 23 2014 06:58:46)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

Mysql Server version: 5.1.73-log Source distribution
Anthony Fornito
la source

Réponses:

11

Ma première supposition serait / etc / hosts qui peut remplacer le DNS (s'il existe pour l'hôte) et remplacer presque entièrement le DNS avant lorsqu'il est manquant. Pour une raison quelconque, cet hôte (dbl) était dans / etc / hosts et ce n'était pas le cas.

Secondairement, disons que /etc/resolv.conf a perdu l'option de recherche pour le domaine local, de sorte que dbl.foo.com se résout mais dbl ne le fait pas ... également une possibilité.

Jason Chodakowski
la source
Après avoir vérifié le fichier / etc / hosts, il a été modifié pour la dernière fois le 29/01/2015 et l'entrée dbl est toujours là pointée vers l'IP correcte, /etc/resolv.conf modifiée le 11/8/2012 et semble correcte.
Anthony Fornito
Ok alors ... et ça? De l'intérieur de MySQL: use mysql; select user,host,password from usercela peut révéler un changement dans l'hôte à partir duquel l'utilisateur 'dbuser' est autorisé à accéder à la base de données. Les causes potentielles sont finies, devraient pouvoir le déterminer. Je lancerais une vérification rapide sur /etc/nsswitch.conf mais ce fichier est un peu obscur ces jours-ci et donc les chances de le changer sont faibles, mais cela vaut la peine d'être vérifié (il contrôle l'ordre dans lequel les choses se résolvent sur le système).
Jason Chodakowski