Неправильне ім'я хоста 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.11.2012 і виглядає правильно.
Ентоні Форніто

Гаразд тоді ... як щодо цього? Зсередини MySQL: use mysql; select user,host,password from userЦе може виявити зміну хоста, що користувачеві "dbuser" дозволяється отримувати доступ до db з. Потенційні причини кінцеві, повинні бути в змозі це визначити. Я б викинув швидку перевірку на /etc/nsswitch.conf, але цей файл сьогодні є незрозумілим, тому шанси на його зміну низькі, але варто перевірити (він контролює порядок вирішення речей на система).
Джейсон Ходаковський
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.