Troubleshooting: Database
Perbaiki masalah koneksi dan query database umum.
Connection Refused
Error: ECONNREFUSED 127.0.0.1:5432 atau connect ECONNREFUSED 127.0.0.1:27017
Error ini berarti 1DevTool menghubungi host dan port di connection string Anda, tapi tidak ada yang mendengarkan di sana. Database server mungkin tidak berjalan atau mendengarkan di port berbeda.
Perbaikan:
- Cek apakah database berjalan. Untuk PostgreSQL: jalankan
pg_ctl statusdi terminal. Untuk MySQL:mysqladmin status. Untuk Redis:redis-cli ping(Anda harus mendapatPONG). Mulai service jika berhenti. - Cek port. Port default adalah 5432 (PostgreSQL), 3306 (MySQL/MariaDB), 27017 (MongoDB), dan 6379 (Redis). Bandingkan port di
DATABASE_URLAnda dengan port yang sebenarnya digunakan database Anda. - Container Docker. Jika database Anda berjalan di dalam Docker, cek container berjalan dengan
docker ps. Jika tidak terdaftar, mulai dengandocker start <container-name>. Juga konfirmasi port container dipublish ke host Anda (cari0.0.0.0:5432->5432/tcpdi outputdocker ps).
Authentication Failed
Error: password authentication failed for user "postgres" atau Access denied for user 'root'@'localhost'
Username atau password di connection string Anda tidak cocok dengan yang diharapkan database server.
Perbaikan:
- Periksa ulang username dan password di
DATABASE_URLatau pengaturan koneksi Anda. Mudah membingungkan password akun Supabase dengan password database — mereka berbeda. Gunakan password yang ditampilkan di dashboard Supabase di bawah Settings → Database. - Karakter khusus di password. Jika password Anda mengandung
@,#,/, atau:, karakter ini harus di-URL-encode di connection string. Misalnya,@menjadi%40dan#menjadi%23. Password sepertip@ss#wordakan ditulis sebagaip%40ss%23worddi URL.
SSL/TLS Diperlukan
Error: SSL connection has been closed unexpectedly atau server requires SSL but client does not support it
Banyak provider database cloud (Supabase, Neon, Railway, Render) memerlukan koneksi terenkripsi.
Perbaikan: Tambahkan ?sslmode=require di akhir connection string PostgreSQL Anda:
postgresql://user:pass@host:5432/db?sslmode=require
Untuk MongoDB Atlas, gunakan skema mongodb+srv:// di connection string Anda — ini mengaktifkan TLS secara otomatis dan tidak perlu parameter tambahan.
Query Timeout
Penyebab: query memindai terlalu banyak data, atau koneksi jaringan antara 1DevTool dan database terputus di tengah query.
Perbaikan:
- Tambahkan klausa
LIMITke query Anda saat mengeksplorasi data. Misalnya:SELECT * FROM orders LIMIT 100. - Jika query spesifik selalu lambat, cek apakah kolom di klausa
WHEREAnda memiliki index. MenjalankanEXPLAIN ANALYZE <query Anda>di SQL editor akan menunjukkan query plan. - Jika timeout terjadi secara intermiten, cek jaringan Anda. Koneksi VPN khususnya bisa menyebabkan konektivitas database yang tidak stabil.
MongoDB: Karakter Khusus di Password
Jika password MongoDB Anda mengandung @, /, :, atau #, Anda harus URL-encode karakter tersebut di connection string. Karakter ini memiliki makna khusus di URL dan akan merusak parsing jika digunakan secara literal.
Encoding umum: @ → %40, # → %23, / → %2F, : → %3A.
Contoh: password my@secret#pass menjadi my%40secret%23pass di connection string.
Tidak Bisa Terhubung ke Container Docker
Jika database Anda berjalan di dalam container Docker dan Anda mencoba terhubung dari 1DevTool (yang berjalan di mesin host Anda), jangan gunakan localhost di connection string Anda. Dari host, localhost merujuk ke mesin host itu sendiri — bukan container.
Gunakan host.docker.internal sebagai gantinya:
postgresql://user:[email protected]:5432/db
Hostname khusus ini selalu resolve ke mesin host Anda dari dalam Docker, dan ke loopback interface yang benar dari sisi host.