PHP Hostname ไม่ถูกต้อง


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 จะมีการแก้ไขครั้งล่าสุด 1/29/2015 และรายการ dbl ยังคงชี้ไปที่ IP ที่ถูกต้อง /etc/resolv.conf แก้ไขครั้งล่าสุดเมื่อวันที่ 11/8/2012 และดูถูกต้อง
Anthony Fornito

ตกลงแล้ว ... แล้วเรื่องนี้ล่ะ? จากภายใน MySQL: use mysql; select user,host,password from userนี่อาจเปิดเผยการเปลี่ยนแปลงในโฮสต์ที่ผู้ใช้ 'dbuser' ได้รับอนุญาตให้เข้าถึงฐานข้อมูลได้ สาเหตุที่อาจเป็นไปได้ จำกัด ควรจะสามารถระบุได้ ฉันจะทิ้งการตรวจสอบอย่างรวดเร็วใน / etc / nsswitch.conf แต่ไฟล์นั้นค่อนข้างคลุมเครือในทุกวันนี้และโอกาสที่มันจะเปลี่ยนไปจะต่ำ แต่มันก็คุ้มค่ากับการตรวจสอบ ระบบ).
Jason Chodakowski
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.