0

Hướng dẫn chi tiết: Cách kết nối Golang với PostgreSQL cho người mới bắt đầu

Hướng dẫn chi tiết từng bước để thiết lập và kết nối ứng dụng Golang với cơ sở dữ liệu PostgreSQL sử dụng driver lib/pq.


1. Chuẩn bị thông tin Database

Trước khi viết code, bạn cần đảm bảo PostgreSQL đã được cài đặt trên máy và có sẵn một database. Hãy chuẩn bị sẵn 5 thông tin sau:

  • Host: Thường là localhost (nếu chạy trên máy cá nhân).
  • Port: Cổng mặc định của Postgres là 5432.
  • User: Tên tài khoản (mặc định hay dùng là postgres).
  • Password: Mật khẩu của tài khoản đó.
  • DB Name: Tên cơ sở dữ liệu bạn muốn kết nối (ví dụ: testdb).

2. Khởi tạo project Go

Mở terminal (hoặc Command Prompt) tại thư mục bạn muốn chứa code, chạy lệnh sau để khởi tạo module quản lý thư viện của Go:

go mod init my-postgres-app

(Lệnh này sẽ tạo ra một file go.mod trong thư mục của bạn).


3. Cài đặt Driver PostgreSQL

Tiếp tục ở terminal, chạy lệnh tải driver lib/pq về máy:

go get github.com/lib/pq

4. Viết đoạn code kết nối

Tạo một file tên là main.go cùng cấp với file go.mod và dán đoạn code sau vào. Hãy chú ý đọc các dòng comment để hiểu bản chất:

package main

import (
	"database/sql"
	"fmt"
	"log"

	// Khai báo _ (blank import) để Go tải driver PostgreSQL ngầm mà không báo lỗi biến không sử dụng
	_ "github.com/lib/pq"
)

func main() {
	// 1. Khai báo chuỗi thông tin kết nối (Hãy thay đổi bằng thông tin DB của bạn)
	connStr := "host=localhost port=5432 user=postgres password=root dbname=testdb sslmode=disable"

	// 2. Mở kết nối
	// Hàm sql.Open chỉ khởi tạo cấu hình, chưa thực sự kết nối vào DB lúc này
	db, err := sql.Open("postgres", connStr)
	if err != nil {
		log.Fatal("Lỗi khởi tạo cấu hình: ", err)
	}
	
	// Sử dụng defer để đảm bảo kết nối sẽ được đóng lại trước khi chương trình kết thúc
	defer db.Close()

	// 3. Ping thử vào Database
	// Hàm Ping() mới thực sự tạo kết nối mạng xuống PostgreSQL để kiểm tra
	err = db.Ping()
	if err != nil {
		log.Fatal("Không thể kết nối tới Database. Hãy kiểm tra lại mật khẩu/port: ", err)
	}

	// Nếu code chạy được đến đây, chúc mừng bạn!
	fmt.Println("🎉 Kết nối PostgreSQL thành công rực rỡ!")
}

5. Chạy thử thành quả

Quay lại terminal và chạy chương trình bằng lệnh:

go run main.go

Nếu màn hình in ra dòng chữ "🎉 Kết nối PostgreSQL thành công rực rỡ!", bạn đã hoàn tất việc kết nối ứng dụng Golang của mình với cơ sở dữ liệu.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí