У нас есть приложение, которое работает уже около 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
Мое первое предположение - это / etc / hosts, который может переопределить DNS (если он существует для хоста) и почти полностью заменить прямой DNS, когда он отсутствует. По какой-то причине этот хост (dbl) находился в / etc / hosts, а потом его не было.
Во-вторых, предположим, что /etc/resolv.conf потерял опцию поиска для локального домена, поэтому dbl.foo.com разрешается, а dbl нет ... также возможно.