Cài đặt Postgres trên AWS EC2 Ubuntu

Tải và cài đặt các package mới nhất có sẵn trên hệ thống
sudo apt-get update -yTrong đó:
- sudo (superuser do): Lệnh sudo được sử dụng để thực hiện các lệnh với đặc quyền superuser (root).
- apt-get update: Được sử dụng để tải và làm mới thông tin Package từ tất cả các nguồn (kho lưu trữ) được định cấu hình. Thông tin này sau đó được hệ thống sử dụng để xác định gói nào có sẵn và cập nhật cơ sở dữ liệu gói cục bộ.
- -y: Option này mặc định Yes cho tất cả các tùy chọn xuất hiện trong quá trình cài đặt
sudo apt-get upgrade -yTrong đó:
- apt-get upgrade: được sử dụng để cài đặt các phiên bản mới nhất của tất cả các gói hiện được cài đặt trên hệ thống
Tài và cài đặt PostgreSQL
sudo apt install postgresql -yTrong đó:
- apt install: Được sử dụng để thực hiện cài đặt 1 gói
Chuyển qua phiên postgres
sudo su postgresTrong đó:
- su (switch user): được sử dụng để thay đổi ID người dùng hiện tại trong phiên đăng nhập.
Tạo Role
psql -U postgres -c "CREATE ROLE ubuntu;"Trong đó:
- psql: cho phép bạn tương tác với máy chủ cơ sở dữ liệu PostgreSQL bằng các truy vấn và lệnh SQL.
- -U postgres: Tùy chọn -U chỉ định user sẽ kết nối tới PostgreSQL. Trong trường hợp này, nó được đặt thành superuser "postgres". Điều này là cần thiết vì việc tạo role mới thường yêu cầu quyền superuser .
- -c : Tùy chọn -c được sử dụng để chỉ định một lệnh (hoặc câu lệnh SQL) sẽ được psql thực thi sau khi kết nối với cơ sở dữ liệu.
- "CREATE ROLE ubuntu;" : Là lệnh SQL tạo một role mới có tên "ubuntu" trong cơ sở dữ liệu PostgreSQL. Câu lệnh CREATE ROLE được sử dụng để xác định role cơ sở dữ liệu mới, có thể được coi là tài khoản người dùng.
Hãy nhớ rằng việc tạo role thường yêu cầu quyền superuser
Cho phép Role vừa tạo thực hiện Login
psql -U postgres -c "ALTER ROLE ubuntu WITH LOGIN;"Trong đó:
- "ALTER ROLE ubuntu WITH LOGIN;" : là lệnh SQL sửa đổi các thuộc tính của role có tên là "ubuntu". Trong trường hợp này, câu lệnh ALTER ROLE bổ sung thêm khả năng đăng nhập cho role (WITH LOGIN), nghĩa là giờ đây role này có thể được sử dụng để kết nối với cơ sở dữ liệu PostgreSQL.
Cho phép User tạo Database
psql -U postgres -c "ALTER USER ubuntu CREATEDB;"Trong đó:
- "ALTER USER ubuntu CREATEDB;" : là lệnh SQL sửa đổi các thuộc tính của user có có tên là "ubuntu". Trong trường hợp này, câu lệnh ALTER USER bổ sung thêm khả năng cho người dùng tạo cơ sở dữ liệu (CREATEDB), nghĩa là giờ đây người dùng có thể tạo cơ sở dữ liệu mới trong hệ thống PostgreSQL.
Tạo Password cho User
psql -U postgres -c "ALTER USER ubuntu WITH PASSWORD 'password';"Trong đó:
- "ALTER USER ubuntu WITH PASSWORD 'password';" : là lệnh SQL sửa đổi các thuộc tính của user có tên là "ubuntu". Câu lệnh ALTER USER, trong trường hợp này, thay đổi mật khẩu của người dùng thành giá trị được chỉ định, trong ví dụ này là 'password'.
Đóng phiên hiện tại
exitTrong đó:
- exit: Khi bạn gõ exit và nhấn Enter, nó sẽ ra lệnh cho shell kết thúc phiên hiện tại và đưa bạn trở lại phiên trước đó hoặc đăng xuất bạn khỏi hệ thống
Tìm đường dẫn file postgresql.conf
sudo find / -name "postgresql.conf"Trong đó:
- find: tìm kiếm các tệp và thư mục trong hệ thống phân cấp thư mục dựa trên các tiêu chí khác nhau.
- /: đại diện cho thư mục gốc, cần tìm tại vị trí này trở đi
- -name "postgresql.conf": Tùy chọn -name trong lệnh find chỉ định rằng việc tìm kiếm phải dựa trên tên tệp.
Chỉnh sửa file postgresql.conf
sudo nano <link>Update file postgresql.conf, listen_address = '*'
- Chỉ định (các) địa chỉ TCP/IP mà máy chủ sẽ lắng nghe và trả lời các kết nối từ đó. Giá trị này có dạng danh sách tên máy chủ và/hoặc địa chỉ IP dạng số được phân tách bằng dấu phẩy.
- * tương ứng với tất cả các IP Interface có sẵn.
- 0.0.0.0 cho phép nghe tất cả các địa chỉ IPv4 và :: cho phép nghe tất cả các địa chỉ IPv6.
- Nếu danh sách trống, máy chủ hoàn toàn không lắng nghe bất kỳ IP nào, trong trường hợp đó chỉ có thể sử dụng Unix-domain sockets để kết nối với nó.
- Nếu danh sách không trống, máy chủ sẽ khởi động nếu nó có thể nghe ít nhất một địa chỉ TCP/IP.
- Giá trị mặc định là localhost, chỉ cho phép thực hiện các kết nối “loopback” TCP/IP cục bộ.
Tìm đường dẫn file pg_hba.conf
sudo find / -name "pg_hba.conf"Xác thực ứng dụng phía client được kiểm soát bởi tệp cấu hình, theo mặc định được đặt tên là pg_hba.conf và được lưu trữ trong thư mục dữ liệu của cụm cơ sở dữ liệu.
Chỉnh sửa file pg_hbal.conf
sudo nano <link>Thêm 2 dòng sau:
host all all 0.0.0.0/0 scram-256
host all all ::/0 scram-256Ý nghĩa các field:
- 1: local/host : Chỉ ra dạng host chi phép kết nối vào db
- 2: Chỉ định (các) tên cơ sở dữ liệu mà bản ghi này khớp với
- 3: Chỉ định (các) tên user của cơ sở dữ liệu mà bản ghi này khớp.
- 4: Chỉ định (các) địa chỉ máy khách phù hợp với bản ghi này. 0.0.0.0/0 đại diện cho tất cả các địa chỉ IPv4 và ::0/0 đại diện cho tất cả các địa chỉ IPv6
- 5: Chỉ định phương thức xác thực sẽ sử dụng khi kết nối khớp với bản ghi này.
Restart Postgre
sudo systemctl restart postgresqlMột vài command bổ sung có ích:
Hiển thị thông tin chi tiết về một thư mục
ls -ld /home/ubuntuCấp quyền cho user
sudo chown <user>:<group> <path>sudo chown ubuntu: /home/ubuntuChủ đề
Bạn thấy bài này thế nào?