Неправильное имя хоста PHP

12

У нас есть приложение, которое работает уже около 2 лет без каких-либо проблем.

Сегодня утром, когда я зашел на сайт, получала ошибку:

Session: connection failed

Я проверил соединения с базой данных, проверил пользователя, проверил гранты для пользователя, все выглядело хорошо.

Я создал тестовую страницу, используя информацию о соединении в файле .inc.xml

Получил ошибку подключения MySQL.

Это оригинальный файл:

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

Имя хоста сервера не dbl

Я изменил вторую строку на это:

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

Связано нормально.

Сделали то же самое изменение в исходном файле .inc.xml, и приложение было запущено и работает нормально.

Мои вопросы):

Я проверил журналы аудита, соединений, запросов, система не была доступна около 3 недель.

Последний раз файл .inc.xml был изменен более года назад.

Почему приложение вдруг перестало принимать DBL в качестве хоста?

Откуда пришло это имя хоста dbl?

Схема системы:

[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
Энтони Форнито
источник

Ответы:

11

Моим первым предположением будет / etc / hosts, который может переопределить DNS (если он существует для хоста) и почти полностью заменить прямой DNS, если он отсутствует. По какой-то причине этот хост (dbl) был в / etc / hosts, а затем - нет.

Во-вторых, допустим, что /etc/resolv.conf утратил опцию поиска для локального домена, так что dbl.foo.com разрешает, но dbl нет ... тоже возможно.

Джейсон Ходаковски
источник
После проверки файла / etc / hosts он был последний раз изменен 29.01.2015, и запись dbl все еще там указывает на правильный IP-адрес, /etc/resolv.conf, последний измененный 8/8/2012 и выглядит правильно.
Энтони Форнито
Хорошо, тогда ... как насчет этого? Изнутри MySQL: use mysql; select user,host,password from userэто может показать изменение в хосте, с которого пользователю 'dbuser' разрешен доступ к БД. Потенциальные причины, конечно, должны быть в состоянии определить это. Я бы бросил быструю проверку на /etc/nsswitch.conf, но в наши дни этот файл немного неясен, поэтому шансы на его изменение невелики, но стоит проверить (он контролирует порядок, в котором все решается на система).
Джейсон Ходаковски,