Hướng dẫn cài đặt và sử dụng PostgreSQL trên CentOS 6

  • Wednesday 06/05/2020

PostgreSQL hoạt động như thế nào?

PostgreSQL sử dụng SQL để cho truy vấn relation và JSON cho truy vấn non-relation. Ưu điểm của PostgreSQL là cộng đồng người dùng lớn mạnh. Nó là mã nguồn mở nên lượng lập trình viên nhiều đóng góp sẽ ảnh hưởng trực tiếp tới tiềm năng phát triển của ứng dụng.

PostgreSQL có khả năng mở rộng, đáng tin cậy và tích hợp tính năng tối ưu cao cấp. Nhiều người nghĩ việc tối ưu cơ sở dữ liệu và tối ưu loại dữ liệu chỉ có trên các database thương mại như SQL server hay Oracle, nhưng thực tế là PostgreSQL cũng hỗ trợ các tính năng cao cấp này, khiến nó trở thành giải pháp hữu hiệu cho VPS của bạn.

Cài đặt PostpreSQL

Truy cập vào trang web tải PostgreSQL repository và tìm phiên bản mới nhất của postgres có sẵn cho phiên bản CentOS của bạn.

Thêm PostgreSQL 9.6 repository cho CentOS 6.x 64bit:

rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Cập nhật danh sách repository bằng lệnh sau:

yum repolist

Cài đặt postgresql bằng lệnh sau:

yum install postgresql96-server postgresql96-contrib

Khởi tạo Database Environment

Khởi tạo postgresql databse bằng lệnh sau:

service postgresql-9.6 initdb

Khởi động postgrepsql và thiết lập tự khởi động cùng OS

service postgresql-9.6 start

chkconfig postgresql-9.6 on

Điều chỉnh SELinux

Chạy lệnh sau để đảm bảo PostgreSQL có thể hoạt động nếu SELinux được bật trên hệ thống của bạn.

setsebool -P httpd_can_network_connect_db 1

Bạn không thể đăng nhập vào PostgreSQL nếu bạn không chạy lệnh trên.

Đăng nhập PostgreSQL command prompt

Theo mặc định, postgres tạo ra một user và database gọi là “postgres”. Cần chuyển sang user postgres để thực hiện các hoạt động liên quan đến postgresql. Postgresql cho phép tương tác với các cơ sở dữ liệu của nó thông qua một giao diện được gọi là psql.

Bây giờ, đăng nhập vào user postgres như sau:

su postgres

Để đăng nhập vào postgresql, gõ lệnh sau:

psql

Để thoát khỏi giao diện postgresql, nhập \q hoặc quit để quay trở lại giao diện Terminal.

Đặt mật khẩu cho user “postgres”

Đăng nhập vào postgresql

su postgres

psql

Đặt mật khẩu cho user postgres bằng lệnh sau:

postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# \q

Để cài đặt PostgreSQL Adminpack, hãy nhập lệnh sau tại dấu nhắc:

postgres=# CREATE EXTENSION adminpack;
CREATE EXTENSION

Tạo User và Databse

Ví dụ tạo một người dùng mới tên là “ktpa” với mật khẩu “ktpapass”, và cơ sở dữ liệu tên là “ktpa_db”

Chuyển sang user postgres:

su postgres
Tạo user ktpa:

$ createuser ktpa
Tạo databse ktpa_db:

$ createdb ktpa_db
Đăng nhập vào psql prompt, thiết lập mật khẩu và cấp quyền truy cập vào database ktpa_db cho ktpa.

$ psql
psql (9.6.2)
Type "help" for help.

postgres=# alter user ktpa with encrypted password 'ktpapass';
ALTER ROLE

postgres=# grant all privileges on database ktpa_db to ktpa;
GRANT
postgres=#

Xóa User và Database

Để xóa database, chuyển sang user postgres:

su postgres
Nhập lệnh sau để xóa database:

$ dropdb <databse-name>
Để xóa user, nhập lệnh sau:

$ dropuser <user-name>

Cấu hình TCP/IP PostgreSQL

Mặc định, kết nối TCP/IP bị vô hiệu hóa, do đó người dùng từ máy tính khác không thể truy cập vào postgresql. Để cho phép kết nối người dùng từ máy tính khác, chỉnh sửa file /var/lib/pgsql/9.6/data/postgresql.conf:

vi /var/lib/pgsql/9.6/data/postgresql.conf
Tìm các dòng:

[...]
#listen_addresses = 'localhost'
[...]
#port = 5432
[...]
Bỏ comment hai dòng trên, và thiết lập địa chỉ IP của máy chủ postgresql hoặc thiết lập “*” để lắng nghe từ mọi địa chỉ.

listen_addresses = '*'
port = 5432
Khởi động lại postgresql để lưu thay đổi:

service postgresql-9.6 restart