เชื่อมต่อด้วย DATABASE_URL

วิธีเชื่อมต่อ database ที่เร็วที่สุด — วาง URL string เดียวแล้วคุณเข้าไปเลย

แทนที่จะต้องกรอกฟอร์มที่มีช่องแยกสำหรับ host, port, username, password และชื่อ database คุณสามารถเชื่อมต่อ database ใดๆ ได้โดยการวาง string เดียวที่เรียกว่า DATABASE_URL เป็นวิธีที่เร็วที่สุดในการเชื่อมต่อ และผู้ให้บริการ cloud database ส่วนใหญ่ให้ URL ที่คุณสามารถคัดลอกตรงจาก dashboard ของพวกเขา

DATABASE_URL คืออะไร?

DATABASE_URL เป็นข้อความบรรทัดเดียวที่เข้ารหัสทุกสิ่งที่จำเป็นในการเปิดการเชื่อมต่อ database ใช้รูปแบบเดียวกับที่อยู่เว็บ (URL) ทำให้อ่านง่ายและแชร์ระหว่างเครื่องมือได้ง่าย

นี่คือตัวอย่าง PostgreSQL DATABASE_URL:

postgresql://myuser:[email protected]:5432/myapp_production

มาแยกแต่ละส่วนกัน:

ส่วนตัวอย่างค่าความหมาย
Enginepostgresql://ประเภทของ database บอก 1DevTool ว่าต้องใช้ driver ใด
Usernamemyuserผู้ใช้ database ที่คุณล็อกอินเป็น
Passwordmypasswordรหัสผ่านของผู้ใช้นั้น
Hostdb.example.comเซิร์ฟเวอร์ที่ database รันอยู่ อาจเป็นชื่อโดเมนหรือที่อยู่ IP
Port5432พอร์ตเครือข่ายที่ database ฟังอยู่ PostgreSQL ใช้ค่าเริ่มต้นที่ 5432
ชื่อ Databasemyapp_productiondatabase เฉพาะ (หรือ schema) บนเซิร์ฟเวอร์นั้นที่คุณต้องการเชื่อมต่อ

เมื่อคุณวาง URL นี้ใน 1DevTool มันจะอ่านแต่ละส่วนอัตโนมัติและกรอกช่องการเชื่อมต่อทั้งหมดให้คุณ คุณไม่ต้องพิมพ์อะไรด้วยตนเอง

หา DATABASE_URL ของคุณได้ที่ไหน

ผู้ให้บริการ cloud database ทุกเจ้าแสดง connection string ที่ใดที่หนึ่งใน dashboard ของพวกเขา นี่คือที่ที่ต้องดูสำหรับเจ้าที่พบบ่อยที่สุด:

Supabase ไปที่โปรเจกต์ของคุณ → Project Settings (ไอคอนเกียร์ใน sidebar) → แท็บ Database → เลื่อนไปที่ Connection String → คลิกแท็บ URI คัดลอก string ที่แสดง จะมีลักษณะเหมือน postgresql://postgres:[YOUR-PASSWORD]@...supabase.co:5432/postgres

Neon ไปที่ Dashboard ของคุณ → เลือกโปรเจกต์ → คลิก Connection Details ใน panel ด้านขวา → คัดลอก Connection string Neon ใช้ URL postgresql:// พร้อม serverless endpoint

PlanetScale ไปที่ database ของคุณ → คลิก Connect → เลือก "Other" จาก dropdown framework → คัดลอก connection string PlanetScale ใช้ URL mysql:// พร้อม SSL certificate ฝังอยู่หรือต้องการผ่าน parameter

Railway เปิดโปรเจกต์ของคุณ → คลิกที่ database service → ไปที่แท็บ Variables → หา DATABASE_URL Railway inject ตัวแปรนี้เข้าสู่แอปของคุณอัตโนมัติ ดังนั้นคุณอาจมีมันอยู่ใน environment แล้ว

Heroku ไปที่แอปของคุณ → แท็บ Settings → เลื่อนไปที่ Config Vars → หา DATABASE_URL Heroku ตั้งค่านี้อัตโนมัติสำหรับ Heroku Postgres add-on ใดๆ

Local PostgreSQL (รันบนเครื่องของคุณเอง) หากคุณติดตั้ง PostgreSQL บน local และไม่ได้เปลี่ยนค่าเริ่มต้น URL ของคุณคือ:

postgresql://postgres:password@localhost:5432/mydb

แทนที่ password ด้วยรหัสผ่านผู้ใช้ postgres จริงของคุณ และ mydb ด้วยชื่อ database ที่คุณสร้าง

Local MySQL

mysql://root:password@localhost:3306/mydb

ทีละขั้นตอน: เชื่อมต่อใน 1DevTool

  1. เปิดโปรเจกต์ของคุณใน 1DevTool แล้วคลิกไอคอน Database ใน toolbar ด้านซ้าย (สัญลักษณ์กระบอกสูบ) หรือกด Cmd+D บน Mac / Ctrl+D บน Windows
  2. คลิกปุ่ม + ใน connection rail ด้านซ้ายของ database panel Dialog ชื่อ Add Connection จะเปิดขึ้น
  3. ด้านบนของ dialog คุณจะเห็นช่องที่ระบุว่า "Paste DATABASE_URL" คลิกที่ช่องนั้น
  4. วาง DATABASE_URL ของคุณ ทันทีที่คุณวาง 1DevTool จะอ่าน URL และกรอกช่อง Host, Port, User, Password และ Database ด้านล่างอัตโนมัติ คุณจะเห็นพวกมันเติมแบบ real time
  5. คลิก "Test Connection" 1DevTool จะพยายามเปิดการเชื่อมต่อกับ database ของคุณ หากสำเร็จ คุณจะเห็นเครื่องหมายถูกสีเขียวและข้อความ "Connection successful"
  6. คลิก "Save" การเชื่อมต่อถูกบันทึกสำหรับโปรเจกต์นี้ มันจะอยู่ที่นั่นครั้งถัดไปที่คุณเปิด 1DevTool
  7. ตารางและ collections ของคุณจะปรากฏใน sidebar ด้านซ้าย คุณเชื่อมต่อและพร้อม query แล้ว

รายการตาราง database หลังจากเชื่อมต่อ

รองรับหลาย database แสดงตัวเลือก engine

รูปแบบ DATABASE_URL สำหรับทุก Engine

นี่คือรูปแบบ URL สำหรับ engines ทั้งหมดที่รองรับ เพื่อให้คุณสามารถสร้างหรือยืนยันด้วยตนเอง:

# PostgreSQL (รวม Supabase, Neon, Timescale, CockroachDB) postgresql://username:password@host:5432/database # MySQL (รวม MariaDB) mysql://username:password@host:3306/database # Microsoft SQL Server mssql://username:password@host:1433/database # MongoDB (มาตรฐาน) mongodb://username:password@host:27017/database # MongoDB Atlas (cloud — ใช้รูปแบบ SRV) mongodb+srv://username:[email protected]/database # Redis (ไม่มี auth) redis://host:6379 # Redis (พร้อม password) redis://:password@host:6379 # Redis พร้อม TLS/SSL rediss://:password@host:6380 # ClickHouse clickhouse://username:password@host:9000/database # Elasticsearch (ไม่มี auth) elasticsearch://host:9200 # Elasticsearch (พร้อม auth) elasticsearch://username:password@host:9200 # CouchDB couchdb://username:password@host:5984/database

ข้อผิดพลาดการเชื่อมต่อทั่วไป

หากการทดสอบการเชื่อมต่อล้มเหลว ตารางนี้จะช่วยคุณหาสิ่งที่ผิดพลาด:

ข้อผิดพลาดทำไมจึงเกิดขึ้นวิธีแก้ไข
Connection refusedDatabase ไม่รันอยู่ หรือหมายเลข port ผิดตรวจสอบว่า database server เริ่มแล้ว ยืนยันว่า port ตรงกับที่ DB ของคุณตั้งค่าใช้
Authentication failedUsername หรือ password ผิดตรวจสอบ credentials อีกครั้ง หากคุณคัดลอกมาจาก dashboard ตรวจสอบว่าคุณไม่ได้รวม whitespace เกินมาโดยไม่ได้ตั้งใจ
SSL requiredCloud database ต้องการการเชื่อมต่อที่เข้ารหัส แต่ URL ไม่ได้ขอเพิ่ม ?sslmode=require ต่อท้าย URL PostgreSQL ของคุณ หรือ ?ssl=true สำหรับ MySQL
Unknown host / could not resolve hostชื่อ host พิมพ์ผิด หรือเครื่องของคุณไม่สามารถเข้าถึงได้ตรวจสอบการพิมพ์ผิดในชื่อ host หากเชื่อมต่อกับ database ส่วนตัว ตรวจสอบว่า VPN ของคุณเชื่อมต่ออยู่
TimeoutHost ของ database เข้าถึงไม่ได้ (firewall หรือ IP ผิด)ตรวจสอบว่าที่อยู่ IP ของคุณอยู่ใน allowlist ของ database ผู้ให้บริการ cloud ส่วนใหญ่มีส่วนที่เรียกว่า "Network" หรือ "Trusted IPs" ในการตั้งค่า

คำเตือน: อย่า commit DATABASE_URL ของคุณลงใน Git มันมีรหัสผ่าน database ของคุณเป็น plain text เก็บไว้ในไฟล์ .env และเพิ่ม .env ลงใน .gitignore ของคุณ หากคุณ commit โดยไม่ได้ตั้งใจ ให้เปลี่ยนรหัสผ่านทันทีใน dashboard ของผู้ให้บริการ database

เคล็ดลับ: 1DevTool เก็บรายละเอียดการเชื่อมต่อของคุณแบบเข้ารหัสบนเครื่อง local ของคุณ พวกมันไม่เคยออกจากคอมพิวเตอร์ของคุณและไม่ถูกส่งไปยังเซิร์ฟเวอร์ใดๆ