ไม่สามารถเชื่อมต่อกับฐานข้อมูล postgresql ระยะไกล


16

ฉันพยายามเชื่อมต่อกับฐานข้อมูล psql ระยะไกล ก่อนที่ฉันจะเพิ่มรายการ pg_hba.conf ด้วยที่อยู่ IP ของลูกค้าฉันได้รับข้อความแสดงข้อผิดพลาด:

xdev@xdevbox:~$ psql -U postgres testdb -h 10.1.1.47
psql: FATAL:  no pg_hba.conf entry for host "10.201.50.71", user "postgres", database "testdb", SSL off

ฉันเพิ่ม IP ของลูกค้าด้วยการตั้งค่าความน่าเชื่อถือ ฉันเปลี่ยนที่อยู่ฟังใน postgres.conf บนเซิร์ฟเวอร์เพื่อฟัง "*" จากนั้นฉันรีสตาร์ทเซิร์ฟเวอร์ฐานข้อมูลโดยใช้คำสั่ง /etc/init.d/postgresql restart

ตอนนี้เมื่อฉันพยายามเชื่อมต่อฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

psql: could not connect to server: Connection refused
    Is the server running on host "10.1.1.47" and accepting
    TCP/IP connections on port 5432?

ใน postgresql.conf พอร์ตถูกตั้งค่าเป็น 5432 ฉันไม่แน่ใจว่าจะตรวจสอบอะไรอีก

ขอบคุณ


คุณสามารถ ping ที่อยู่นั้นได้หรือไม่
dezso

1
ฉันจะบอกว่าฐานข้อมูลไม่ได้รีสตาร์ทอย่างถูกต้องเมื่อคุณรีสตาร์ทมัน ตรวจสอบไฟล์บันทึก PostgreSQL สำหรับเหตุผลที่ว่าทำไม - pg_hba.confอาจพิมพ์ผิดใน
Craig Ringer

ฉันต้องเปลี่ยนที่อยู่ฟังจาก * เป็นที่อยู่ IP เฉพาะ
จุด

คำตอบ:


22

คุณต้องกำหนดค่าสองไฟล์ต่อไปนี้

pg_hba.conf

host all all 0.0.0.0/0 md5

postgresql.conf

listen_addresses='*'

คุณต้องตรวจสอบว่าพอร์ต 5432 เปิดอยู่หรือไม่: http://www.yougetsignal.com/tools/open-ports/

หากยังไม่ได้เพิ่มกฎของคุณiptables:

iptables -A INPUT -s 0/0 -p tcp --dport 5432 -j ACCEPT

0/0: หากคุณต้องการให้ทุกคนเข้าถึงได้ คุณสามารถเปลี่ยนเป็นที่อยู่ IP เฉพาะหรือช่วงของที่อยู่ IP


1
เพียงแค่เพิ่ม คุณไม่จำเป็นต้องใช้เครื่องมือภายนอก เพียงแค่ใช้telnet [yourServerIp] 5432ถ้าคุณไม่ได้ติดตั้ง telnet คุณสามารถใช้PowerShellบน windows ได้
Ionic

@Ionic นั่นเป็นความจริง
Danish Khakwani

2
เรียกฉันว่าหวาดระแวง แต่ฉันไม่ไว้วางใจบริการมากเกินไปในเน็ต ;-) เพียง แต่ต้องระวัง :-)
Ionic

เครื่องมือตรวจสอบพอร์ตช่วยฉันที่นี่
Shobi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.