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.