วิธีแก้ Error Establishing a Database Connection

WordPress and Digital marketing

สอน wordpress Error Establishing a Database Connection

เมื่อใช้ WordPress ไปสักพัก หรือถ้าโชคร้ายสำหรับมือใหม่ คุณอาจผงะเมื่อเปิดเว็บไซต์ของคุณแล้วเจอคำว่า Error Establishing a Database Connection ที่แย่กว่านั้นคือเจอแม้กระทั่งตอนที่คุณกำลังจะเข้าหลังบ้านเพื่อไปแก้ไขปัญหา

นี่เป็นฝันร้ายไม่ว่าจะมือเก่ามือใหม่ แต่อย่าเพิ่งตกใจไป ทุกอย่างมีทางแก้ไขเสมอ ภาษิตฝรั่งว่า “ทุกอย่างต้องมีครั้งแรกเสมอ” และเจอแล้วก็ต้องหัดแก้ไขครั้งแรกเสมอ

เราจะมาเริ่มต้นที่ error ที่หน้าเว็บไซต์ก่อน เพราะว่าเป็นฝันร้ายที่เยียวยาได้ง่ายกว่า error ที่หลังบ้านหรือ backend

Error Establishing a Database Connection

Error นี้เราพบเห็นได้บ่อยๆเวลาเข้าเว็บไซต์อื่นๆ โดยเฉพาะเวลาคลิกทำรายการบางอย่าง หรือที่แย่ที่สุดก็คือเป็นต้องแต่เข้าเว็บนั้นเลย

Error Establishing a Database Connection
error จากการติดต่อฐานข้อมูลไม่ได้ ซึ่งมักหมายรวมถึงใช้ WordPress ไม่ได้ทั้งระบบ

ถ้าปัญหามาจาก host

ปัญหานี้สำหรับมือใหม่หรือผู้ใช้ธรรมดาอาจจะดูน่ากลัวพอสมควร ถ้าเป็นปัญหาชั่วคราวอาจเกิดจากระบบฐานข้อมูลที่ชื่อว่า MySQL ของ host ที่เราใช้อยู่เกิดมีปัญหาชั่วขณะหรือตัว host อาจจะถูกโจมตีจากเครื่อง hacker เพื่อจุดประสงค์บางอย่างและบางขณะ หรือระบบปฏิบัติการของ host มีโหลดมากบางชั่วขณะ หรืออื่นๆ ถ้าเราไม่ได้ไปแก้ไขอะไรเกี่ยวกับระบบ หรือแทบจะไม่ได้ไปแก้ไขอะไรเลย โอกาสที่จะเกิดจากทาง host เป็นไปได้สูง อันนี้ก็รอสักพัก ถ้าปัญหายังอยู่ยาวก็ลองสอบถามไปทาง host ว่าระบบฐานข้อมูลมีปัญหาหรือเปล่า เราเคยใช้ได้ แต่กลับใช้ไม่ได้

ถ้าปัญหามาจากเราเอง

แต่ถ้าคุณเผลอไปทำอะไรบางอย่างที่ตัวระบบ เช่นเข้า DirectAdmin หรือ tool อะไรก็ตามของ host แล้วหลังจากนั้นก็เกิดปัญหา โอกาสที่จะเกิดจากการกระทำ(ตอนเบลอๆ)ของเราเองก็มีสูง

ถ้าคิดว่าปัญหามาจากเราไปทำอะไรบางอย่างก็ต้องลองตรวจสอบดู ตอนแรกให้สมมติว่าฐานข้อมูลยังปกติดีอยู่ ข้อมูลยังอยู่ ระบบฐานข้อมูลยังทำงาน แต่มีบางสิ่งบางอย่างไปทำให้ติดต่อฐานข้อมูลไม่ได้

ลองดูไฟล์ wp-config.php

WordPress ใช้ไฟล์ที่ชื่อว่า wp-config.php เป็นตัวเก็บชื่อฐานข้อมูล ชื่อผู้ใช้ฐานข้อมูล และรหัสผ่านข้อมูล ปกติไฟล์นี้จะถูกสร้างขึ้นตอนที่เราติดตั้ง WordPress ครั้งแรก หากคุณเคยติดตั้ง WordPress คุณจะคุ้นเคยกับ error นี้อยู่แล้ว จริงมันก็คือเพื่อนเก่านั่นเอง นั่นคือ ข้อมูลทั้งสามตัวข้างต้นไม่ถูกต้อง WordPress จึงไม่สามารถติดต่อฐานข้อมูลได้

ปกติไฟล์นี้จะถูกแก้ไขโดยผู้รู้ แต่ถ้าจู่ๆมันถูกแก้ไขเองก็อาจเกิดจากถูกแฮ็ก (hack) แต่โอเค อย่าเพิ่งตกใจประเด็นหลังนี้ ขอให้คุณเข้าไปดูไฟล์ดังกล่าวดู แล้วหาบรรทัดที่เขียนว่า

define(‘DB_NAME’, ‘hostuser_dbname’);
define(‘DB_USER’, ‘hostuser-user’);
define(‘DB_PASSWORD’, ‘password’);
define(‘DB_HOST’, ‘localhost’);

ค่าทั้งสี่ค่าทางขวาจะถูกเซตไว้ตอนคุณติดตั้ง WordPress ซึ่งไม่มีเหตุผลที่มันจะถูกเปลี่ยนไป แต่ถ้ามันถูกเปลี่ยน (หรือหายไป) คุณก็เพียงแต่นำค่าเดิมที่ใช้ตอนติดตั้งมาใส่ ถ้าคุณไม่ได้จดเอาไว้ ให้คุณเข้า DirectAdmin->MySQL แล้วคลิกเลือกฐานข้อมูลของเว็บไซต์ของคุณ ในนั้นจะมี hostuser_dbname และ hostuser-user และ localhost ให้ copy ค่าทั้งสามตัวนี้มาใส่ ยกเว้น password จะไม่มี ให้คุณตั้ง password ใหม่ใน DirectAdmin->MySQL นี้ จากนั้นนำ password นั้นมาใส่ในไฟล์ wp-config.php นี้ บันทึก แล้วลอง refresh หน้าเว็บดู

ถ้าเกิด error นี้ทั้งจาก backend และ frontend

แต่ถ้าเกิด error ทั้งหน้าเว็บไซต์และหลังเว็บไซต์ โอกาสที่ฐานข้อมูลของเราพังก็มีสูง อันนี้เราหมดสิทธิ์ที่จะเข้าหลังบ้านของ WordPress แต่ไม่ต้องตกใจ วิธีแก้ไขเหมือนวิธีแรกคือ เปิดไฟล์ wp-config.php เข้าเพิ่มคำสั่งนี้เข้าไปท้ายไฟล์ define(‘WP_ALLOW_REPAIR’, true); บันทึกแล้วพิมพ์คำสั่งนี้ที่ url ของเบราเซอร์ http://fixmeplease.com/wp-admin/maint/repair.php โดย fixmeplease.com คือชื่อเว็บไซต์ของคุณ คำสั่งนี้จะทำการซ่อมแซมฐานข้อมูล MySQL ของคุณ (ถ้าปัญหาไม่ร้ายแรง) จะขึ้นหน้าจอตามนี้

การแก้ error โดย repair ฐานข้อมูล
เมื่อแก้ไข wp-config.php โดยใส่รหัสให้ repair ฐานข้อมูล ให้กด repair ยืนยัน

ซึ่งถ้าไม่ร้ายแรงมาก ปกติก็จะซ่อมได้ ลอง refresh เว็บไซต์ของคุณดู เป็นอันจบ

แต่ถ้า error ยังอยู่

อันนี้ก็ต้องขอแสดงความเสียใจ(เล็กน้อย) เพราะจะเป็นฝันร้ายสำหรับ admin ทั่วไป วิธีแก้อยู่นอกเหนือขอบเขตของบทความนี้ แต่คิดว่าสองกรณีนี้น่าจะเป็นสาเหตุมากที่สุดและผู้ในวิสัยที่ทุกคนจะแก้ไขได้