การกำหนดพอร์ตของ PostgreSQL


12

ฉันรู้ว่าโดยค่าเริ่มต้น PostgreSQL ฟังพอร์ต 5432 แต่อะไรคือคำสั่งให้กำหนดพอร์ตของ PostgreSQL จริง ๆ

การกำหนดค่า: Ubuntu 9.10 พร้อม PostgreSQL 8.4

คำตอบ:


26

lsof และ nmap เป็นโซลูชัน แต่ไม่ได้ติดตั้งตามค่าเริ่มต้น สิ่งที่คุณต้องการคือ netstat (8)

sudo netstat -plunt |grep postgres

ลีนุกซ์กำลังย้ายออกจากเส้นทาง / ifconfig / netstat คำสั่งสมัยใหม่ที่เทียบเท่าคือss -plung|grep postgres(หมายเหตุแฟล็กเดียวกัน)
ptman

1
ไม่มีgแฟล็กอีกต่อไปสำหรับssคำสั่ง ลอง:ss -pa |grep postgresql
GrayedFox

1
@GrayedFox ขอบคุณสำหรับการอัปเดต แต่สำหรับฉันที่ให้ชื่อพอร์ตไม่ใช่หมายเลขดังนั้นฉันคิดว่าss -pan |grep postgresเหมาะสมกว่า
ptman

6

ยูทิลิตี PostgreSQL pg_lsclusters แสดงข้อมูลเกี่ยวกับการกำหนดค่าและสถานะของคลัสเตอร์ทั้งหมดรวมถึงหมายเลขพอร์ต

$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
8.4     main      5433 online postgres /var/lib/postgresql/8.4/main       /var/log/postgresql/postgresql-8.4-main.log

นอกจากนี้ยังมีข้อได้เปรียบที่ไม่ต้องการสิทธิ์ 'sudo' ในการเรียกใช้

บนระบบ Debian และ Ubuntu คำสั่ง pg_lsclusters จัดทำโดยแพ็คเกจ postgresql-common ซึ่งควรติดตั้งเป็นค่าเริ่มต้นพร้อมกับเซิร์ฟเวอร์ postgresql


3
โปรดทราบว่าpg_lsclustersเป็น Ubuntu-ism และไม่ใช่คำสั่ง Postgres มาตรฐาน มันจะใช้งานได้ในกรณีนี้ แต่ไม่ใช่วิธีแก้ปัญหาทั่วไป ...
voretaq7

2

ถ้าคุณต้องการที่จะทำจากภายในฐานข้อมูลเพียงแค่ทำ "SHOW พอร์ต" แต่สมมติว่าคุณสามารถเชื่อมต่อกับมันได้อย่างน้อยในพื้นที่ ...


1

หากคุณกำลังค้นหาบนเครื่องท้องถิ่นฉันจะใช้คำสั่ง lsof เพื่อตรวจสอบว่าพอร์ต postgresql กำลังใช้งานอยู่หรือไม่

lsof -p <postgres_process_id>

คุณอาจต้องเรียกใช้สิ่งนี้ในฐานะรูท
Michael Mior

1

ฉันมีเครื่องจักรที่มีอินสแตนซ์ postgres หลายตัวกำลังทำงานอยู่ - ดังนั้นฉันจึงมีปัญหาในการพยายามจับคู่ฐานข้อมูลที่ถูกต้องกับแต่ละพอร์ต ฉันมักจะทำ:

$ ps aux | grep  postgres | grep -v 'postgres:'

จากนั้นสำหรับแต่ละอินสแตนซ์ที่ส่งคืนค้นหาไดเรกทอรี ( -Dอาร์กิวเมนต์) และ:

$ sudo grep port $DIR/postgresql.conf

0

นี่คือทางออกหนึ่งที่ฉันได้พบ:

sudo apt-get install nmap
sudo nmap localhost | grep postgresql

หากคุณต้องการค้นหาเครื่องที่ไม่ใช้งานเครื่องให้เปลี่ยนlocalhostเป็นที่อยู่ IP ของเซิร์ฟเวอร์

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