Error Establish a Database Connection บน WordPress เกิดจากการเชื่อมต่อกับฐานข้อมูลที่ผิดพลาด ถ้าโชคดีก็เจอกันตั้งแต่เริ่มติดตั้ง WordPress เลย หรือเพิ่งทำเว็บไซต์ใหม่ๆ ยังไม่มีข้อมูลอะไร แต่ถ้าซวยหน่อยก็อาจเกิดตอนที่เว็บใช้งานไปแล้ว มีข้อมูลเยอะแล้ว ข้อมูลของเราอาจสูญหายได้ โดยเจ้า Error นี้เกิดขึ้นได้จากหลายสาเหตุเช่น
- จากโฮสติ้งที่เราใช้บริการอยู่ – อาจเกิดจาก Database Server ล่ม
- ข้อมูลในไฟล์ wp-config.php ไม่ถูกต้อง – Database Name/User/Password/Host Name ไม่ถูกต้อง อาจจะเพราะกรอกข้อมูลผิดหรือไม่ก็ฐานข้อมูลมีการเปลี่ยนแปลง
- ปลั๊กอินบางตัวอาจทำให้ฐานข้อมูลเสียหาย
- ฐานข้อมูลเสียหาย – อาจเกิดจาก Database Server ทำงานผิดพลาด Query พลาด มีปัญหาที่ Hardware ของ Server (อันนี้อาจจะต้องเผื่อใจเอาไว้เพราะมีโอกาสเสียข้อมูลได้)

หน้าตา Error ก็จะประมาณนี้
มีวิธีแก้ยังไง ?

สำหรับวิธีแก้ Error Establish a Database Connection นั้นก็มีอยู่หลายวิธีตามแต่กรณีหรือความสะดวกของแต่ละคน
วิธีที่ 1 : แจ้งโฮสติ้งที่เราใช้บริการอยู่
วิธีที่ง่ายที่ซู้ดดด แค่แจ้ง Error แล้วนั่งรอให้เจ้าหน้าที่แก้ไขให้ ส่วนจะช้าหรือเร็วก็ขึ้นอยู่กับบริการของแต่ละโฮสล่ะนะ
- ติดต่อไปหาโฮสติ้งที่เราใช้บริการอยู่
- แจ้งว่าเกิด Error แบบนี้ขึ้น (แคปหน้าจอตอน Error ไปให้ดูเลยก็ได้)
- รอเจ้าหน้าที่ติดต่อกลับ (ไม่น่าจะนาน)
- หากเจ้าหน้าที่แจ้งว่า Error ที่เราเจอนั้นเกิดจากทางโฮสติ้งเอง ที่เราทำได้ก็คือรอ (ขึ้นอยู่กับว่าทางโฮสติ้งจะแก้ปัญหาได้เร็วที่สุดแค่ไหน)
- ถ้า Error ไม่ได้เกิดที่โฮสติ้ง เจ้าหน้าที่จะแจ้งว่าเกิด Error ที่ตรงไหน (ถ้าไม่รู้ว่าต้องแก้ยังไงก็ลองถามวิธีจากเจ้าหน้าที่หรือไม่ก็ให้ทางเจ้าหน้าที่ดำเนินการให้)
✪✪✪ พอดีเว็บนี้อยู่กับ hostatom ผมเลยลองแก้ข้อมูลในไฟล์ wp-config.php ในส่วนของ Database Connection ให้มั่วดู แล้วลองแจ้งให้เจ้าหน้าที่ให้แก้ดูปรากฎว่า 15 นาทีแก้เสร็จแล้วและยังชี้จุดที่มีปัญหามาชัดเจนว่าเกิดจากอะไร — ปรบมือให้เลยจ้า
วิธีที่ 2 : เลี่ยงการใช้ปลั๊กอินบางตัว
ปลั๊กอินบางตัวนั้น ทางผู้พัฒนาอาจออกแบบการบันทึกข้อมูลลงในตารางฐานข้อมูลได้ไม่ดีนัก ส่วนใหญ่จะเป็นการเขียนข้อมูลลงไปใน Table เดียวซ้ำๆ จน Table นั้นๆ มีข้อมูลอยู่หลายหมื่นหรือหลายแสนบรรทัด และไม่ได้ทำ Index ให้ฐานข้อมูล Table นั้นๆอีก
อย่างเช่นปลั๊กอินเหล่านี้ เป็นตัวที่พบว่ามีอาการดังกล่าว แนะนำให้หลีกเลี่ยงไม่ให้ใช้งานจะดีกว่า

พวกนี้เจอคนใช้บ่อยและมีปัญหากันบ่อยๆ เลย ตอนเปิดใช้ตอนแรกก็ไม่มีปัญหาหรอก แต่พอปล่อยไว้นานๆ เป็นปี ฐานข้อมูลจะบวมไปเรื่อยๆ จนเกิด Error ขึ้น หรือถ้าเว็บไหนมีคนเข้าชมเยอะก็อาจจะเจอเร็วหน่อย ถ้าเลี่ยงได้เลี่ยงเลยจะดีกว่า
วิธีที่ 3 : แก้ข้อมูลในไฟล์ wp-config.php ให้ถูกต้อง
ก่อนที่จะเริ่ม เราต้องมีข้อมูล Database Name, Database User และ Database Password กันซะก่อน ถ้าไม่รู้ ให้เราเปิดไฟล์ wp-config.php ดูว่า WordPress ตัวที่มีปัญหาของเราเนี่ยมันเชื่อมอยู่กับฐานข้อมูลชื่ออะไร จากนั้นไปเปลี่ยนรหัสผ่านด้วย Control Panel ที่เราใช้กับโฮสติ้งได้เลย
>> เปลี่ยนรหัสผ่านฐานข้อมูลด้วย DirectAdmin
>> เปลี่ยนรหัสผ่านฐานข้อมูลด้วย Plesk
เมื่อได้ข้อมูลมาครบแล้วก็มาเริ่มกันได้เลย
- เปิดไฟล์ wp-config.php ขึ้นมา (ใช้ FTP หรือ Control Panel ก็ได้)
- แก้ข้อมูลตามที่มาร์คไว้ให้ตรงกับฐานข้อมูลของเรา (เสร็จแล้วก็อย่าลืมกดเซฟกันล่ะ)

- ‘database_name_here’ ให้แก้เป็น ‘ชื่อฐานข้อมูลของเรา’
- ‘username_here’ ให้แก้เป็น ‘ชื่อผู้ใช้ฐานข้อมูล’
- ‘password_here’ ให้แก้เป็น ‘รหัสผ่านที่เราตั้งไว้’
- ‘localhost’ ให้แก้เป็น ‘ชื่อโฮสของฐานข้อมูล’ (ส่วนใหญ่จะเป็น localhost น่ะแหละ)
- ลองเช็คเว็บไซต์ดูสิว่า Error หายไปมั้ย
วิธีที่ 4 : ซ่อมฐานข้อมูล
สาเหตุนี้บางครั้งก็เกิดจาก WordPress Update ไม่สมบูรณ์ หยุดชะงักไปกลางคัน หรือ WordPress กำลัง Query Database แบบ Insert ข้อมูลเข้าตารางผ่านการใช้งาน Plugin หรือ Post บทความแล้วดันหยุดชะงักไปดื้อๆ อาการแบบนี้จะทำให้ Database พัง (แบบเบาๆ) อย่าเพิ่งตกใจไป เราสามารถซ่อมฐานข้อมูลได้แบบอัตโนมัติ วิธีที่ง่ายที่สุดแนะนำให้ทำผ่าน Control Panel
>> สำหรับ DirectAdmin
>> สำหรับ Plesk
ถ้าไม่มี Control Panel ก็สามารถซ่อมผ่าน WordPress ได้เช่นกัน
- เปิดไฟล์ wp-config.php ขึ้นมา
- เพิ่มโค้ด “define( ‘WP_ALLOW_REPAIR’, true );” เข้าไป (เพิ่มไว้ที่บรรทัดล่างสุดเลยก็ได้) จากนั้นกดเซฟซักที

- เปิดเบราว์เซอร์ขึ้นมา แล้วไปที่ “ชื่อโดเมน/wp-admin/maint/repair.php” จะมาที่หน้าซ่อมฐานข้อมูลของเรา ให้คลิกไปที่ “Repair Database” เลย

- เสร็จแล้วจะได้แบบนี้

- กลับไปที่ไฟล์ “wp-config.php” ให้เราลบโค้ด “define( ‘WP_ALLOW_REPAIR’, true );” ทิ้งไปเลย แล้วก็เซฟซักที

- ลองเช็คเว็บไซต์ดูสิว่า Error หายไปมั้ย
Comments