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

Answers:


11

我的第一个猜测是/ etc / hosts,它可以覆盖DNS(如果主机存在),并且在丢失时几乎完全替代正向DNS。无论出于何种原因,该主机(dbl)都位于/ etc / hosts中,然后却不在。

其次,假设/etc/resolv.conf丢失了本地域的搜索选项,因此dbl.foo.com可以解析,但dbl不能...也有可能。


在检查/ etc / hosts文件之后,该文件最后一次修改时间是2015年1月29日,并且dbl条目仍然指向正确的IP,/ etc / resolv.conf文件最后一次修改时间是2012年11月8日,看起来是正确的。
Anthony Fornito

那好吧...怎么样?从MySQL内部:use mysql; select user,host,password from user这可能揭示允许用户'dbuser'访问主机的主机中的更改。潜在原因是有限的,应该能够确定这一点。我对/etc/nsswitch.conf进行了快速检查,但是这些文件现在有点晦涩难懂,因此更改的机会很低,但是值得检查一下(它控制着解决问题的顺序)。系统)。
Jason Chodakowski
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.