
ถ้าคุณเปิดเว็บ WordPress แล้วเจอข้อความ “Error Establishing a Database Connection” แทนที่จะเห็นหน้าเว็บปกติ นั่นหมายความว่า WordPress ไม่สามารถเชื่อมต่อกับฐานข้อมูล MySQL ได้ เว็บของคุณจะใช้งานไม่ได้เลยทั้งหน้าหลักและหน้า Admin — ซึ่งต่างจาก WordPress Error 500 ที่อาจยังเข้า Admin ได้บางส่วน ข้อผิดพลาดนี้พบบ่อยและมักแก้ได้เองถ้ารู้จุด แต่ก็อาจบ่งบอกถึงปัญหาฐานข้อมูลที่รุนแรงกว่านั้นด้วย
อาการที่พบและสาเหตุหลัก

เว็บจะแสดงข้อความ Error Establishing a Database Connection ทั้งหน้าหลัก (frontend) และหน้า /wp-admin หรือบางกรณีหน้า Admin อาจแสดงข้อความเพิ่มเติมว่า “One or more database tables are unavailable” ซึ่งหมายถึงตารางในฐานข้อมูลเสียหาย
สาเหตุที่พบบ่อยมีดังนี้:
- ข้อมูล Database ใน wp-config.php ผิด — ชื่อ DB, username, password หรือ host ถูกแก้หรือพิมพ์ผิด
- MySQL Server หยุดทำงาน — เซิร์ฟเวอร์ล่ม, RAM เต็ม, หรือ Hosting มีปัญหา
- Hosting ระงับบัญชี DB — เกินโควต้าหรือถูก suspend
- ตาราง (Table) ในฐานข้อมูลเสียหาย — เกิดจากการอัปเดตกลางคัน, ไฟดับ, หรือ disk เต็ม
- แก้ไข wp-config.php ผิดพลาด — เช่น เพิ่ง migrate เว็บหรือเปลี่ยน Hosting แล้วลืมอัปเดตค่า DB
ตรวจสอบก่อน: เช็ค wp-config.php
เปิดไฟล์ wp-config.php ที่ root ของ WordPress แล้วตรวจสอบ 4 ค่านี้ให้ตรงกับข้อมูล Database จริงใน Hosting Panel (cPanel / DirectAdmin / Plesk):
DB_NAME— ชื่อฐานข้อมูลDB_USER— ชื่อผู้ใช้ DBDB_PASSWORD— รหัสผ่าน DBDB_HOST— ปกติเป็นlocalhostแต่บาง Hosting ใช้ host เฉพาะ เช่น127.0.0.1หรือ IP จริง
วิธีเช็คง่าย ๆ คือเข้า cPanel → MySQL Databases แล้วดูชื่อ DB และ User ให้ตรงกัน ถ้าเพิ่งย้ายเซิร์ฟเวอร์หรือเปลี่ยน Hosting ให้สงสัยค่า DB_HOST ก่อนเลย
วิธีแก้ไขทีละขั้นตอน

ขั้นที่ 1 — แก้ไขค่าใน wp-config.php
ถ้าพบว่าค่าผิด ให้แก้ให้ตรง บันทึกไฟล์ แล้วลอง reload เว็บ ถ้าเว็บกลับมาทำงาน ปัญหาจบที่นี่
ขั้นที่ 2 — ตรวจสอบว่า MySQL รันอยู่หรือเปล่า
ถ้าคุณใช้ Shared Hosting ให้ติดต่อ Hosting Support โดยตรง เพราะคุณไม่มีสิทธิ์ restart MySQL เอง บอกว่า “MySQL service down” หรือ “cannot connect to database” Hosting ส่วนใหญ่แก้ได้ภายใน 15–30 นาที ถ้าใช้ VPS ให้รัน sudo systemctl restart mysql หรือ sudo service mysql start
ขั้นที่ 3 — ซ่อมตาราง DB ที่เสียหาย
ถ้าหน้า Admin แจ้ง table unavailable ให้เพิ่มบรรทัดนี้ลงใน wp-config.php (ก่อนบรรทัด /* That's all */):
define('WP_ALLOW_REPAIR', true);
จากนั้นเปิด URL: https://yoursite.com/wp-admin/maint/repair.php แล้วกด Repair Database เมื่อซ่อมเสร็จให้ลบบรรทัดนั้นออกจาก wp-config.php ทันที
ขั้นที่ 4 — ตรวจสอบผ่าน phpMyAdmin
เข้า phpMyAdmin ใน cPanel → เลือก Database ของเว็บ → ถ้าตารางไหนมีสถานะ “In use” หรือ “Crashed” ให้คลิก Check All → เลือก Action Repair Table
ตรวจสอบ Disk และโควต้า
หนึ่งในสาเหตุที่มักถูกมองข้ามคือ Disk Quota เต็ม — เมื่อ disk เต็ม MySQL ไม่สามารถเขียน log หรือ temp file ได้ และจะหยุดทำงานโดยอัตโนมัติ ให้เข้า cPanel ดูแถบ Disk Usage ถ้าใกล้หรือเต็มให้ลบ file ชั่วคราว (log เก่า, backup เก่า) ก่อน แล้ว restart MySQL
ปัญหา Error Establishing a Database Connection บางครั้งเกิดร่วมกับ Critical Error หรือ WordPress หน้าจอขาว ซึ่งมักเกิดจาก PHP หรือ Plugin ที่ทำให้ DB connection หมดก่อนกำหนด
วิธีป้องกันไม่ให้เกิดซ้ำ
- ทำ Backup ฐานข้อมูลอัตโนมัติ ทุกวันด้วย Plugin เช่น UpdraftPlus หรือ BlogVault
- ตั้ง Uptime Monitor (เช่น UptimeRobot ฟรี) เพื่อรับแจ้งเตือนทันทีเมื่อเว็บล่ม
- เมื่อย้าย Hosting หรือ migrate เว็บ ให้ตรวจ wp-config.php ทุกครั้งก่อน go-live
- จำกัด Plugin ที่ query DB หนัก ๆ และตรวจสอบ Disk Usage เป็นประจำ
- เลือก Hosting ที่มี MySQL เวอร์ชันใหม่และ uptime SLA ไม่ต่ำกว่า 99.9%
เมื่อไหร่ควรขอความช่วยเหลือจากผู้เชี่ยวชาญ
ถ้าทำตามขั้นตอนข้างต้นแล้วเว็บยังไม่กลับมา หรือซ่อมตารางแล้วยังเจอ error ซ้ำ หรือ Repair Database แจ้งว่าซ่อมไม่ได้ — แปลว่าฐานข้อมูลอาจเสียหายระดับ InnoDB corruption ซึ่งต้องใช้คนที่เชี่ยวชาญด้าน MySQL recovery โดยตรง การพยายามแก้ผิดวิธีอาจทำให้ข้อมูลสูญหายถาวรได้ ทางที่ดีคือติดต่อ บริการแก้ WordPress ล่ม / Error เพื่อให้ผู้เชี่ยวชาญดูแลให้ตั้งแต่ต้นจะปลอดภัยกว่า
สรุปแล้ว Error Establishing a Database Connection มักแก้ได้ด้วยการตรวจ wp-config.php และ restart MySQL แต่ถ้าเกิดบ่อยหรือแก้แล้วไม่หาย ควรมองหาสาเหตุระดับ server หรือโครงสร้าง DB แทนการแก้ surface-level ซ้ำไปเรื่อย ๆ สำหรับปัญหา WordPress อื่น ๆ ที่เกี่ยวข้อง ลองอ่าน PHP Version ไม่รองรับ และ .htaccess พัง ซึ่งอาจเป็นต้นเหตุที่เชื่อมกันได้
คำถามที่พบบ่อย
Error Establishing a Database Connection แก้เองได้ไหมโดยไม่ต้องมีความรู้ด้าน server?
ได้ในกรณีที่สาเหตุคือค่าใน wp-config.php ผิด เพราะแค่เปิดไฟล์และแก้ค่าให้ตรงก็พอ แต่ถ้าเกิดจากตาราง DB เสียหายหรือ MySQL crash การแก้ผิดพลาดอาจทำให้ข้อมูลสูญหายได้ ควรปรึกษาผู้เชี่ยวชาญก่อนลองแก้เอง
ทำไมเจอ error นี้แค่หน้าหลัก แต่หน้า Admin ยังเข้าได้?
กรณีนี้มักหมายความว่าฐานข้อมูลยังเชื่อมต่อได้ แต่มีตาราง WordPress บางตารางเสียหายหรือ unavailable ให้ใช้ฟีเจอร์ Repair Database ใน wp-admin/maint/repair.php เพื่อซ่อมตาราง
DB_HOST ที่ถูกต้องควรใส่ค่าอะไร?
ส่วนใหญ่คือ localhost แต่บาง Hosting เช่น WP Engine, Kinsta หรือ Shared Hosting บางเจ้าจะมีค่า host เฉพาะ ให้เช็คในหน้า MySQL Databases ของ Hosting Panel หรือติดต่อ Support เพื่อขอค่าที่ถูกต้อง
ถ้า Hosting บอกว่า MySQL ปกติดี แต่เว็บยังพังอยู่ ต้องทำยังไง?
ให้ขอ error log ของ MySQL จาก Hosting Support และตรวจ repair.php ดูว่ามีตารางที่ซ่อมไม่ได้หรือเปล่า ถ้าพบว่าตาราง InnoDB เสียหายระดับ physical corruption จะต้องใช้ผู้เชี่ยวชาญ MySQL recovery โดยตรง
