Nombre de host PHP incorrecto

12

Tenemos una aplicación que ha estado funcionando durante aproximadamente 2 años sin ningún problema.

Esta mañana cuando entré en el sitio recibí un error:

Session: connection failed

Verifiqué las conexiones de la base de datos, verifiqué al usuario, verifiqué las concesiones para el usuario, todo parecía estar bien.

Creé una página de prueba usando la información de conexión en el archivo .inc.xml

Tengo un error de conexión mysql.

Este es el archivo original:

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

El nombre de host del servidor no es dbl

Cambié la segunda línea a esto:

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

Se conecta bien.

Realizó el mismo cambio en el archivo original .inc.xml y la aplicación volvió a funcionar correctamente.

Mis preguntas):

Revisé los registros de auditoría, las conexiones, las consultas, el sistema no ha tenido acceso durante aproximadamente 3 semanas.

El archivo .inc.xml fue modificado por última vez hace más de un año.

¿Por qué la aplicación dejaría de tomar dbl como host de repente?

¿De dónde vino ese nombre de host dbl?

Diseño del sistema:

[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
fuente

Respuestas:

11

Mi primera suposición sería / etc / hosts que puede anular el DNS (si existe para el host) y sustituir casi por completo el DNS de reenvío cuando falta. Por alguna razón, este host (dbl) estaba en / etc / hosts y luego no lo estaba.

En segundo lugar, digamos que /etc/resolv.conf perdió la opción de búsqueda para el dominio local, por lo que dbl.foo.com se resuelve pero dbl no ... también es una posibilidad.

Jason Chodakowski
fuente
Después de verificar el archivo / etc / hosts, se modificó por última vez el 1/29/2015 y la entrada dbl todavía está allí apuntando a la IP correcta, /etc/resolv.conf se modificó por última vez el 11/11/2012 y parece correcto.
Anthony Fornito
Ok entonces ... ¿qué tal esto? Desde el interior de MySQL: use mysql; select user,host,password from userEsto puede revelar un cambio en el host desde el cual el usuario 'dbuser' puede acceder a la base de datos. Las causas potenciales son finitas, deberían poder determinar esto. Echaría un vistazo rápido a /etc/nsswitch.conf, pero ese archivo es un poco oscuro en estos días, por lo que las posibilidades de que cambie son bajas, pero vale la pena comprobarlo (controla el orden en que las cosas se resuelven en el sistema).
Jason Chodakowski