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ではありません

2行目をこれに変更しました。

   <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は1年以上前に最後に変更されました。

アプリケーションが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ファイルを確認した後、最終変更日は2015年1月29日であり、dblエントリはまだ正しいIPを指しており、/ etc / resolv.confは最終変更日2012年11月8日で、正しく見えます。
アンソニーフォルニート

それでは...これはどうですか?MySQL内から:use mysql; select user,host,password from userこれにより、ユーザー 'dbuser'がdbにアクセスできるホストの変更が明らかになる場合があります。潜在的な原因は有限であり、これを判断できるはずです。/etc/nsswitch.confを簡単にチェックしますが、このファイルは最近ではあまり知られていないため、変更される可能性は低いですが、チェックする価値があります(システム)。
ジェイソンChodakowski
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.