Kết nối bằng DATABASE_URL

Cách nhanh nhất để kết nối cơ sở dữ liệu — chỉ cần dán một URL là xong.

Thay vì điền từng trường riêng lẻ như host, port, username, password và tên database, bạn có thể kết nối với bất kỳ database nào bằng cách dán một chuỗi duy nhất gọi là DATABASE_URL. Đây là cách nhanh nhất để kết nối, và hầu hết các nhà cung cấp database đám mây đều cho bạn một URL như vậy ngay trên dashboard của họ.

DATABASE_URL là gì?

DATABASE_URL là một dòng văn bản chứa đầy đủ thông tin cần thiết để mở một kết nối database. Nó theo cùng cấu trúc với địa chỉ web (URL), khiến nó dễ đọc và dễ chia sẻ giữa các công cụ.

Đây là ví dụ một DATABASE_URL của PostgreSQL:

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

Hãy cùng phân tích từng phần:

PhầnGiá trị ví dụÝ nghĩa
Enginepostgresql://Loại database. Phần này cho 1DevTool biết cần dùng driver nào.
Tên người dùngmyuserTên tài khoản database bạn đăng nhập vào.
Mật khẩumypasswordMật khẩu của tài khoản đó.
Hostdb.example.comServer nơi database đang chạy. Có thể là tên miền hoặc địa chỉ IP.
Port5432Cổng mạng mà database lắng nghe. PostgreSQL mặc định dùng 5432.
Tên databasemyapp_productionDatabase cụ thể (hoặc schema) trên server đó mà bạn muốn kết nối.

Khi bạn dán URL này vào 1DevTool, nó tự động đọc từng phần và điền vào các trường kết nối tương ứng. Bạn không cần gõ gì thủ công.

Tìm DATABASE_URL ở đâu?

Mọi nhà cung cấp database đám mây đều hiển thị chuỗi kết nối ở đâu đó trong dashboard. Đây là nơi tìm cho các dịch vụ phổ biến nhất:

Supabase Vào dự án của bạn → Project Settings (biểu tượng bánh răng trên thanh bên) → tab Database → kéo xuống Connection String → nhấn tab URI. Sao chép chuỗi hiển thị. Trông sẽ như postgresql://postgres:[YOUR-PASSWORD]@...supabase.co:5432/postgres.

Neon Vào Dashboard → chọn dự án → nhấn Connection Details ở panel bên phải → sao chép Connection string. Neon dùng URL postgresql:// với serverless endpoint.

Railway Mở dự án → nhấn vào dịch vụ database → vào tab Variables → tìm DATABASE_URL. Railway cũng tự động inject biến này vào ứng dụng của bạn, nên bạn có thể đã có sẵn trong môi trường.

Heroku Vào app của bạn → tab Settings → kéo xuống Config Vars → tìm DATABASE_URL. Heroku tự động thiết lập biến này cho bất kỳ add-on Heroku Postgres nào.

PostgreSQL local (chạy trên máy của bạn) Nếu bạn đã cài PostgreSQL local và chưa thay đổi cấu hình mặc định, URL của bạn là:

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

Thay password bằng mật khẩu thực của tài khoản postgres và mydb bằng tên database bạn đã tạo.

MySQL local

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

Các bước kết nối trong 1DevTool

  1. Mở dự án trong 1DevTool, rồi nhấn biểu tượng Database trên thanh công cụ bên trái (biểu tượng hình trụ), hoặc nhấn Cmd+D trên Mac / Ctrl+D trên Windows.
  2. Nhấn nút + trên thanh kết nối bên trái của database panel. Một hộp thoại Add Connection sẽ mở ra.
  3. Ở đầu hộp thoại, bạn sẽ thấy trường có nhãn "Paste DATABASE_URL". Nhấn vào trường đó.
  4. Dán DATABASE_URL vào. Ngay khi dán xong, 1DevTool đọc URL và tự động điền vào các trường Host, Port, User, Password, và Database bên dưới. Bạn có thể thấy chúng được điền theo thời gian thực.
  5. Nhấn "Test Connection". 1DevTool sẽ thử mở kết nối đến database. Nếu thành công, bạn sẽ thấy dấu tích xanh và thông báo "Connection successful".
  6. Nhấn "Save". Kết nối được lưu cho dự án này. Nó sẽ ở đó vào lần sau bạn mở 1DevTool.
  7. Các bảng và collection của bạn sẽ xuất hiện trên thanh bên trái. Bạn đã kết nối và sẵn sàng truy vấn.

Danh sách bảng database sau khi kết nối

Hỗ trợ nhiều loại database

Định dạng DATABASE_URL cho từng engine

Dưới đây là các định dạng URL cho tất cả các engine được hỗ trợ, để bạn có thể tự tạo hoặc kiểm tra thủ công:

# PostgreSQL (cũng dùng cho Supabase, Neon, Timescale, CockroachDB) postgresql://username:password@host:5432/database # MySQL (cũng dùng cho MariaDB) mysql://username:password@host:3306/database # Microsoft SQL Server mssql://username:password@host:1433/database # MongoDB (tiêu chuẩn) mongodb://username:password@host:27017/database # MongoDB Atlas (đám mây — dùng định dạng SRV) mongodb+srv://username:[email protected]/database # Redis (không có xác thực) redis://host:6379 # Redis (có mật khẩu) redis://:password@host:6379 # Redis với TLS/SSL rediss://:password@host:6380 # ClickHouse clickhouse://username:password@host:9000/database # Elasticsearch (không có xác thực) elasticsearch://host:9200 # Elasticsearch (có xác thực) elasticsearch://username:password@host:9200 # CouchDB couchdb://username:password@host:5984/database

Các lỗi kết nối thường gặp

Nếu test kết nối thất bại, bảng này giúp bạn xác định vấn đề:

LỗiNguyên nhânCách khắc phục
Connection refusedDatabase không chạy, hoặc số port saiĐảm bảo database server đã được khởi động. Kiểm tra port có khớp với cấu hình database không.
Authentication failedTên người dùng hoặc mật khẩu không đúngKiểm tra lại thông tin đăng nhập. Nếu sao chép từ dashboard, đảm bảo không có khoảng trắng thừa.
SSL requiredDatabase đám mây yêu cầu kết nối mã hóa nhưng URL chưa yêu cầuThêm ?sslmode=require vào cuối URL PostgreSQL, hoặc ?ssl=true cho MySQL.
Unknown host / could not resolve hostHostname bị viết sai hoặc máy bạn không thể kết nối đến nóKiểm tra lỗi chính tả trong hostname. Nếu kết nối đến database riêng tư, đảm bảo VPN đang kết nối.
TimeoutHost database không thể truy cập (firewall hoặc IP sai)Kiểm tra xem địa chỉ IP của bạn có trong danh sách cho phép của database không. Hầu hết các nhà cung cấp đám mây có mục "Network" hoặc "Trusted IPs" trong cài đặt.

Cảnh báo: Đừng bao giờ commit DATABASE_URL vào Git. Nó chứa mật khẩu database ở dạng văn bản thuần. Lưu nó trong file .env và thêm .env vào .gitignore. Nếu bạn vô tình commit, hãy đổi mật khẩu ngay lập tức trong dashboard của nhà cung cấp database.

Mẹo: 1DevTool lưu thông tin kết nối của bạn được mã hóa trên máy local. Chúng không bao giờ rời khỏi máy tính của bạn và không bao giờ được gửi đến bất kỳ server nào.