Nếu bạn thử kết nối với máy chủ cơ sở dữ liệu PostgreSQL từ máy trạm và gặp lỗi.

could not connect to server: Connection refused (0x0000274D/10061)

Hãy thực hiện theo các bước sau đây, bạn sẽ có thể kích hoạt quyền truy cập từ xa vào máy chủ cơ sở dữ liệu PostgreSQL.

Trước khi bắt đầu, điều quan trọng là phải biết rằng có hai file cấu hình kiểm soát cách thức hoạt động của máy chủ cơ sở dữ liệu Postgre, chứa các cài đặt cần được điều chỉnh hoặc thay đổi để làm cho phiên bản cơ sở dữ liệu của bạn.

  1. postgresql.conf (Được sử dụng để đặt các tham số khác nhau ảnh hưởng đến cơ sở dữ liệu)
  2. pg_hba.conf (Được sử dụng để kiểm soát xác thực ứng dụng khách, HBA có nghĩa là “Xác thực dựa trên máy chủ”)

Các file đề cập ở trên có thể được tìm thấy tại đường dẫn

/etc/postgresql/9.3/main/

Bạn cũng có thể truy vấn vị trí của các tệp này từ psql CLI:

sudo -u postgres psql
show config_file;

Để cho phép truy cập từ xa trước tiên, chúng ta cần thay đổi cài đặt list_addresses trong file postgresql.conf

Tìm dòng

#listen_addresses = 'localhost'

và thay đổi nó thành

list_addresses = '*'

Tiếo theo ta mở file pg_hba.conf tìm dòng

host all all 127.0.0.1/32 md5

và thêm vào bên dưới

host all all 0.0.0.0/0 md5

Khởi động lại Postgresql để thay đổi có hiệu lực bằng cặp lệnh

sudo service postgresql stop
sudo service postgresql start

Sau khi khởi động lại cơ sở dữ liệu của bạn sẽ cho phép kết nối từ các máy trạm từ xa.

Lưu ý: Đảm bảo tường lửa của máy chủ của bạn không chặn bất kỳ yêu cầu nào, bạn cé thể check xem port 5432 có OPEN hay không tại Open port check tool

Nếu port 5432 ở trạng thái CLOSE, bạn chạy lệnh sau thông qua SSH

iptables -I INPUT -p tcp --dport 5432 -m state --state NEW -j ACCEPT

Check lại nếu OPEN là đã có thể kết nối được từ xa, chúc bạn thành công!

Thảo luận
Please wait...