Nome do host PHP incorreto

12

Temos um aplicativo em execução há cerca de 2 anos sem nenhum problema.

Esta manhã, quando entrei no site, estava recebendo um erro:

Session: connection failed

Eu verifiquei as conexões do banco de dados, verifiquei o usuário, verifiquei as concessões para o usuário, tudo parecia bem.

Criei uma página de teste usando as informações de conexão no arquivo .inc.xml

Erro de conexão mysql.

Este é o arquivo original:

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

O nome do host do servidor não é dbl

Eu mudei a segunda linha para isso:

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

Conectou bem.

Fez a mesma alteração no arquivo .inc.xml original e o aplicativo voltou a funcionar corretamente.

Minhas perguntas):

Eu verifiquei os logs de auditoria, conexões, consultas, o sistema não foi acessado por cerca de 3 semanas.

O arquivo .inc.xml foi modificado pela última vez há um ano.

Por que o aplicativo parou repentinamente de tomar o dbl como host?

De onde veio esse nome de host dbl?

Layout do 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
fonte

Respostas:

11

Meu primeiro palpite seria / etc / hosts, que podem substituir o DNS (se existir para o host) e substituir quase totalmente o DNS de encaminhamento quando ele estiver ausente. Por qualquer motivo, este host (dbl) estava em / etc / hosts e não estava.

Secundariamente, digamos que o /etc/resolv.conf perdeu a opção de pesquisa para o domínio local, para que o dbl.foo.com seja resolvido, mas o dbl não ... também é uma possibilidade.

Jason Chodakowski
fonte
Após verificar o arquivo / etc / hosts, foi modificado pela última vez em 29/01/2015 e a entrada dbl ainda está lá apontada para o IP correto, /etc/resolv.conf modificado pela última vez em 11/11/2012 e parece correto.
Anthony Fornito
Ok então ... que tal isso? De dentro do MySQL: use mysql; select user,host,password from userIsso pode revelar uma alteração no host que o usuário 'dbuser' tem permissão para acessar o banco de dados. As causas potenciais são finitas e devem ser capazes de determinar isso. Eu faria uma verificação rápida no /etc/nsswitch.conf, mas esse arquivo é meio obscuro hoje em dia e, portanto, as chances de mudar são baixas, mas vale a pena verificar (ele controla a ordem em que as coisas são resolvidas). sistema).
Jason Chodakowski