แก้ปัญหา: Database
แก้ไขการเชื่อมต่อ database และปัญหา query ทั่วไป
Connection Refused
ข้อผิดพลาด: ECONNREFUSED 127.0.0.1:5432 หรือ connect ECONNREFUSED 127.0.0.1:27017
ข้อผิดพลาดนี้หมายความว่า 1DevTool เอื้อมไปถึง host และ port ใน connection string ของคุณ แต่ไม่มีอะไรฟังอยู่ที่นั่น Database server ไม่ได้รันอยู่หรือกำลังฟังบนพอร์ตอื่น
วิธีแก้ไข:
- ตรวจสอบว่า database รันอยู่ สำหรับ PostgreSQL: รัน
pg_ctl statusใน terminal สำหรับ MySQL:mysqladmin statusสำหรับ Redis:redis-cli ping(คุณควรได้PONG) เริ่มบริการหากมันหยุด - ตรวจสอบพอร์ต พอร์ตเริ่มต้นคือ 5432 (PostgreSQL), 3306 (MySQL/MariaDB), 27017 (MongoDB) และ 6379 (Redis) เปรียบเทียบพอร์ตใน
DATABASE_URLของคุณกับพอร์ตที่ database ของคุณใช้จริง - Docker containers หาก database ของคุณรันอยู่ใน Docker ตรวจสอบว่า container รันอยู่ด้วย
docker psหากมันไม่อยู่ในรายการ เริ่มมันด้วยdocker start <container-name>ยืนยันว่าพอร์ตของ container ถูก publish ไปยัง host ของคุณ (หา0.0.0.0:5432->5432/tcpใน output ของdocker ps)
Authentication Failed
ข้อผิดพลาด: password authentication failed for user "postgres" หรือ Access denied for user 'root'@'localhost'
Username หรือ password ใน connection string ของคุณไม่ตรงกับที่ database server คาด
วิธีแก้ไข:
- ตรวจสอบ username และ password ใน
DATABASE_URLหรือการตั้งค่าการเชื่อมต่อของคุณอีกครั้ง ง่ายที่จะสับสนรหัสผ่านบัญชี Supabase ของคุณกับรหัสผ่าน database — พวกมันต่างกัน ใช้รหัสผ่านที่แสดงใน Supabase dashboard ภายใต้ Settings → Database - Special characters ในรหัสผ่าน หากรหัสผ่านของคุณมี
@,#,/หรือ:ตัวอักษรเหล่านี้ต้องถูก URL-encoded ใน connection string ตัวอย่าง@กลายเป็น%40และ#กลายเป็น%23รหัสผ่านเช่นp@ss#wordจะเขียนเป็นp%40ss%23wordใน URL
SSL/TLS Required
ข้อผิดพลาด: SSL connection has been closed unexpectedly หรือ server requires SSL but client does not support it
ผู้ให้บริการ cloud database หลายราย (Supabase, Neon, Railway, Render) ต้องการการเชื่อมต่อที่เข้ารหัส
วิธีแก้ไข: เพิ่ม ?sslmode=require ต่อท้าย connection string PostgreSQL ของคุณ:
postgresql://user:pass@host:5432/db?sslmode=require
สำหรับ MongoDB Atlas ใช้ scheme mongodb+srv:// ใน connection string ของคุณ — มันเปิดใช้งาน TLS อัตโนมัติและไม่ต้องการ parameter เพิ่ม
Query หมดเวลา
สาเหตุ: query กำลัง scan ข้อมูลมากเกินไป หรือการเชื่อมต่อเครือข่ายระหว่าง 1DevTool และ database หลุดกลาง query
วิธีแก้ไข:
- เพิ่ม
LIMITclause ไปยัง query ของคุณขณะสำรวจข้อมูล ตัวอย่าง:SELECT * FROM orders LIMIT 100 - หาก query เฉพาะช้าเสมอ ตรวจสอบว่าคอลัมน์ใน
WHEREclause ของคุณมี indexes หรือไม่ การรันEXPLAIN ANALYZE <your query>ใน SQL editor จะแสดง query plan ให้คุณ - หากหมดเวลาเป็นครั้งคราว ตรวจสอบเครือข่ายของคุณ การเชื่อมต่อ VPN โดยเฉพาะสามารถทำให้เกิดความไม่เสถียรของการเชื่อมต่อ database
MongoDB: Special Characters ในรหัสผ่าน
หากรหัสผ่าน MongoDB ของคุณมี @, /, : หรือ # คุณต้อง URL-encode ตัวอักษรเหล่านั้นใน connection string ตัวอักษรเหล่านี้มีความหมายพิเศษใน URL และจะทำลาย parsing หากใช้ตามตัวอักษร
การเข้ารหัสทั่วไป: @ → %40, # → %23, / → %2F, : → %3A
ตัวอย่าง: รหัสผ่าน my@secret#pass กลายเป็น my%40secret%23pass ใน connection string
ไม่สามารถเชื่อมต่อกับ Docker Container
หาก database ของคุณรันอยู่ใน Docker container และคุณกำลังพยายามเชื่อมต่อจาก 1DevTool (ซึ่งรันบนเครื่อง host ของคุณ) อย่าใช้ localhost ใน connection string ของคุณ จาก host localhost อ้างถึงเครื่อง host เอง — ไม่ใช่ container
ใช้ host.docker.internal แทน:
postgresql://user:[email protected]:5432/db
Hostname พิเศษนี้ resolve ไปยังเครื่อง host ของคุณเสมอจากภายใน Docker และไปยัง loopback interface ที่ถูกต้องจากฝั่ง host