Nome host PHP non corretto


12

Abbiamo un'applicazione in esecuzione da circa 2 anni senza problemi.

Questa mattina, quando sono arrivato sul sito, stava ricevendo un errore:

Session: connection failed

Ho controllato le connessioni al database, ho controllato l'utente, ho controllato le sovvenzioni per l'utente, tutto sembrava a posto.

Ho creato una pagina di prova utilizzando le informazioni sulla connessione nel file .inc.xml

Si è verificato un errore di connessione mysql.

Questo è il file originale:

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

Il nome host del server non è dbl

Ho cambiato la seconda riga in questo:

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

Si è collegato bene.

Apportato la stessa modifica al file .inc.xml originale e l'applicazione è stata eseguita correttamente.

Le mie domande):

Ho controllato i registri di controllo, le connessioni, le query, il sistema non ha avuto accesso per circa 3 settimane.

Il file .inc.xml è stato modificato l'ultima volta più di un anno fa.

Perché l'applicazione dovrebbe smettere all'improvviso di prendere dbl come host?

Da dove viene quel nome host dbl?

Layout del sistema:

[root@acpr-web-x ~]# cat /proc/version
Linux version 2.6.32-358.2.1.el6.x86_64 (mockbuild@x86-023.build.eng.bos.redhat.com) (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

Risposte:


11

La mia prima ipotesi sarebbe / etc / hosts che può sovrascrivere il DNS (se esiste per l'host) e sostituire quasi interamente il DNS in avanti quando manca. Per qualsiasi motivo questo host (dbl) era in / etc / hosts e quindi non lo era.

Secondariamente, supponiamo che /etc/resolv.conf abbia perso l'opzione di ricerca per il dominio locale, in modo che dbl.foo.com si risolva ma dbl non ... anche una possibilità.


Dopo aver controllato il file / etc / hosts è stato modificato l'ultima volta il 29/01/2015 e la voce dbl è ancora lì puntata sull'IP corretto, /etc/resolv.conf modificata l'ultima volta l'11 / 8/2012 e sembra corretta.
Anthony Fornito,

Ok allora ... che ne dici di questo? Dall'interno di MySQL: use mysql; select user,host,password from userquesto potrebbe rivelare un cambiamento nell'host da cui l'utente "dbuser" è autorizzato ad accedere al db. Le potenziali cause sono limitate, dovrebbero essere in grado di determinarlo. Lancerei un rapido controllo su /etc/nsswitch.conf ma quel file è un po 'oscuro in questi giorni e quindi le possibilità che cambi siano basse, ma vale la pena controllare (controlla l'ordine in cui le cose si risolvono sul sistema).
Jason Chodakowski il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.