Trước hết, hãy kiểm tra xem bạn có thể kết nối với cơ sở dữ liệu qua psql :
psql -h ip_address -d name_of_the_database -U username
Nếu bạn gặp lỗi từ chối kết nối, bạn đã thiết lập sai và đánh dấu vào ô Tôi nên kiểm tra điều gì nếu kết nối từ xa với PostgreSQL không hoạt động?
psql: could not connect to server: Connection refused Is the server running on host ip_address
Tôi nên kiểm tra điều gì nếu kết nối từ xa với PostgreSQL không hoạt động?
-
Kiểm tra cấu hình xác thực trong
pg_hba.conf
Thường nằm trên linux -
/etc/postgresql/version/main/pg_hba.conf
.Bạn nên cho phép xác thực ứng dụng khách cho IP cụ thể từ tất cả các địa chỉ IP:# Database administrative login by Unix domain socket local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 0.0.0.0/0 md5 # IPv6 local connections: host all all ::0/0 md5 #all ips host all all all md5
Thông tin thêm về cách thiết lập
pg_hba.conf
bạn có thể tìm thấy trong tài liệu . -
Sau đó, bạn nên thiết lập nghe trên một cổng cụ thể.
Bạn phải tìm
postgresql.conf
. Thường nằm/etc/postgresql/9.1/main/postgresql.conf
) tệp và thay đổi dòng với listening_address từ:#listen_address = ''
để (đừng quên xóa # có nghĩa là bình luận):
listen_address = '*'
-
Sau mỗi bước, bạn nên khởi động lại dịch vụ Postgresql:
sudo service postgresql restart
-
Sau bước 2, bạn sẽ thấy cổng 5432 (hoặc 5433) trong địa chỉ nghe sau lệnh netstat:
netstat -ntlp
-
Sau đó, bạn phải mở cổng cho PostgreSQL trong tường lửa:
sudo ufw allow 5432
Bạn có thể kiểm tra cài đặt tường lửa với (bạn sẽ thấy 5432 trong danh sách):
sudo ufw status
-
Nếu bất kỳ bước nào trước đó không hoạt động, bạn nên kiểm tra xem PostgreSQL có đang chạy trên cổng khác không (thường là 5433) và lặp lại các bước trước đó.
Điều này rất thường xuyên xảy ra khi bạn có nhiều phiên bản PostgreSQL đang chạy hơn hoặc bạn nâng cấp cơ sở dữ liệu và quên dừng phiên bản trước của PostgreSQL.
Nếu bạn gặp sự cố khi tìm tệp cấu hình, bạn có thể kiểm tra chuỗi này Các tệp postgres * .conf của tôi ở đâu? .