Mặc định, sau khi cài đặt PostgreSQL, bạn chỉ có thể kết nối đến database từ localhost (tức là máy chủ hiện đang cài đặt PostgreSQL)

Tất nhiên là để kết nối được (kể cả trong localhost) bạn phải khởi động PostgreSQL lên trước đó đã nhé.

Đọc thêm  Khởi động PostgreSQL server

Bài viết này sẽ hướng dẫn bạn cấu hình để có thể kết nối đến PostgreSQL database từ một máy bên ngoài


   Thử kết nối từ bên ngoài bằng công cụ.

Đầu tiên, bạn cần kết nối đến máy chủ cài đặt PostgreSQL bằng 1 công cụ ssh nào đó. Tôi thường dùng mRemoteNG hoặc XShell

Đọc thêm  Kết nối vào server Linux bằng ssh tool

Bạn chuyển sang user posgres bằng lệnh

su - postgres

 

Sau đó kết nối vào PostgreSQL trên localhost bằng lệnh

psql

psql (13.2)
Type "help" for help.

postgres=#

 

Như vậy là bạn đã kết nối vào PostgreSQL. Tuy nhiên, chỉ có đứng trên localhost bạn mới thực hiện được thôi, còn từ bên ngoài mạng vẫn chưa kết nối được. Bằng chứng là bạn sử dụng một công cụ để quản lý PostgreSQL như DBeaver để kết nối vào bằng laptop của các bạn thì vẫn không được.

Giờ chúng ta sẽ cần làm theo các bước sau để có thể kết nối được:


   Cấu hình file postgresql.conf

Đây là file chứa các tham số cấu hình của PostgreSQL, để tìm được đường dẫn đến file này, các bạn có thể kết nối vào PostgreSQL trên localhost và gõ lệnh show config_file;

Đọc thêm  Cấu hình tham số trong PostgreSQL
postgres=# show config_file;
              config_file               
----------------------------------------
 /var/lib/pgsql/13/data/postgresql.conf
(1 row)

Chúng ta sẽ tìm thấy đường dẫn đến file postgresql.conf. Mở file đó ra bằng câu lệnh:

vi /var/lib/pgsql/13/data/postgresql.conf

Và tìm đến dòng:

listen_addresses = 'localhost'

và sửa lại thành

listen_addresses = '*'

Tiếp theo chúng ta sẽ cấu hinh file pg_hba_conf


   Cấu hình file pg_hba.conf

Đây là file cho phép chúng ta định ra các luật cho phép user, ip được kết nối vào database cụ thể nào. Chúng ta sẽ cấu hình để mọi IP có thể truy cập được vào tất cả database nếu có username và password.

Đọc thêm  Cấu hình kết nối trong PostgreSQL với pg_hba.conf

Để tìm được đường dẫn của file pg_hba.conf, chúng ta kết nối vào PostgreSQL và chạy lệnh

postgres=# show hba_file;
              hba_file              
------------------------------------
 /var/lib/pgsql/13/data/pg_hba.conf
(1 row)

Chúng ta lại mở file pg_hba.conf bằng trình soạn thảo vi

vi /var/lib/pgsql/13/data/pg_hba.conf

Và thêm vào dòng sau:

host    all             all              0.0.0.0/0                       md5

Như vậy là gần xong rồi đó. Chỉ còn một bước nữa thôi.


   Khởi động lại PostgreSQL

Bây giờ bạn cần restart lại PostgreSQL để các thay đổi có hiệu lực

systemctl stop postgresql-13
systemctl start postgresql-13

   Kiểm tra lại kết quả

Và cuối cùng, bạn kiểm tra lại kết quả bằng cách thử kết nối xem sao

 

Nguồn: https://dangxuanduy.com/

Xin cho tôi được biết, bạn cảm thấy bài viết này như thế nào? Ý kiến của bạn sẽ giúp tôi nâng cao chất lượng bài viết của mình.

    Hãy chia sẻ bài viết này nếu bạn thấy có ích nhé
    5 1 vote
    Article Rating
    Subscribe
    Notify of
    guest
    0 Comments
    Inline Feedbacks
    View all comments