Bạn đang code backend, hoặc có thao tác với database trong code của mình nhưng cần deploy dự án?
Bạn sử dụng cơ sở dữ liệu để lưu nhiều dữ liệu hơn trong trang web như account users, thông tin bài viết, …
Bạn muốn lưu trữ đơn giản một cơ sở dữ liệu nhưng không muốn dùng service ngoài cho tốn tiền? Nhưng bạn cũng không muốn sử dụng json-server?
Sau khi setup VPS một cách đơn giản, bạn tìm cách để deploy một dự án Node.js như Next.js, Nuxt.js, Express.js và cần thao tác với database?
OK! Postgresql là một cách khá là tốt. Tại sao không phải Mysql hay Sql server nhỉ? Chẳng sao cả, CSDL nào cũng được thôi, nhưng mình sẽ dùng Postgresql nhé!
Lưu ý: Trường hợp này, mình follow theo bài viết trước và sử dụng Ubuntu.
First, bạn cần phải update và refresh các package trong server đề phòng có lỗi gì hoặc conflict.
sudo apt update
Sau đó, bạn hãy cài đặt postgresql và các gói chức năng cần thiết của nó:
sudo apt install postgresql postgresql-contrib
Khi cài, nó có cảnh báo và muốn restart lại một vài service của bạn, nên là nhấn Y
để đồng ý nhé!
Sau khi cài đặt xong, bạn add một user mới và vậy thôi nhé.
Sau khi cài đặt hoàn tất, các cài đặt trên, bạn add một user mới và đặt mật khẩu cho nó:
sudo -u postgres psql
createuser --interactive
Nó sẽ hiện lên như này nè:
Enter name of role to add: user_name
Shall the new role be a superuser? (y/n) y
Sau khi add xong, bạn tạo một database mới:
sudo -u postgres createdb database_name
Nó có cảnh báo về permission nhưng không sao, nó vẫn được tạo rồi đó nhé!
Sau khi tạo database xong, bạn truy cập vào psql tool và đặt mật khẩu cho user mới tạo nhé:
sudo psql -d database_name -U user_name
Nó sẽ hiện ra như này:
database_name=# \password
Enter new password for user "user_name":
Bạn nhập mật khẩu muốn đặt vào, sau đó re-enter nhé.
OK sau khi add xong là XONG! đến đây là được rồi, bạn làm thêm phần sau trên mạng nó khó ra hehe để mình chỉ một cách easy hơn nhiều nè.
Bạn vào đường link này: https://www.pgAdmin.org/download, sau đó cài đặt về máy
Sau khi cài đặt xong, bạn tạo một liên kết server mới ở phần: Server>Register>Server...
Ở phần Name, bạn muốn để như nào cũng được, tuy nhiên nên để dễ hiểu một xíu.
Chuyển sang tab connection, phần đầu tiên là Host name/address bạn nhập ip của server vào nhé.
Port mặc định là 5432
tuy nhiên, để đảm bảo bảo mật, bạn vẫn nên đổi đi nhé, nếu không cần thì thôi.
Phần Maintenance Database, bạn nhập cái database_name
mới tạo vào.
Phần Username bạn nhập user_name
mới tạo vào.
Phần Password bạn nhập nốt phần password
mới tạo vào.
TỪ TỪ ĐÃ, bạn chưa save được đâu, ở phần postgresql service, bạn chưa cho phép ip của bạn connect nên bạn không connect được đâu.
Bạn cần thêm một dòng nữa ở dưới cùng của file pg_hba.conf
vi /etc/postgresql/14/main/pg_hba.conf
Nó sẽ hiện lên một file dài ngoằng, tuy nhiên kéo xuống dưới cùng, thêm một dòng này vào nhé:
host all all [ip_cua_ban]/32 scram-sha-256
Lấy ip của tôi ở đâu? Thì bạn ấn Save trong pgAdmin đó, nó sẽ hiện IP của bạn cho hehehe.
Sau khi add xong, bạn sẽ cần phải restart lại service postgresql
systemctl restart postgresql
OK, sau khi restart xong, bạn vào lại pgAdmin và save lại, nếu vào được thì chúc mừng bạn, nếu không được thì cho mình xem lỗi với nhé :V
Sau phần này, bạn thao tác với database bằng một tool quản lý database sẽ dễ hơn phải khom hehe.