ฉันใช้งาน PSQL อยู่และกำลังพยายามเชื่อมต่อแอปพลิเคชัน Perl กับฐานข้อมูล มีคำสั่งให้ค้นหาพอร์ตและโฮสต์ปัจจุบันที่ฐานข้อมูลกำลังรันอยู่หรือไม่?
ฉันใช้งาน PSQL อยู่และกำลังพยายามเชื่อมต่อแอปพลิเคชัน Perl กับฐานข้อมูล มีคำสั่งให้ค้นหาพอร์ตและโฮสต์ปัจจุบันที่ฐานข้อมูลกำลังรันอยู่หรือไม่?
คำตอบ:
พอร์ต PostgreSQL 5432เริ่มต้นคือ โฮสต์ที่ฐานข้อมูลกำลังดำเนินการอยู่นั้นควรได้รับจากผู้ให้บริการโฮสต์ของคุณ ฉันเดาว่ามันจะเป็นโฮสต์เดียวกับเว็บเซิร์ฟเวอร์หากไม่ได้ระบุไว้ โดยทั่วไปจะกำหนดค่าเป็น localhost โดยสมมติว่าเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ฐานข้อมูลของคุณอยู่ในโฮสต์เดียวกัน
psql localhost:5432นอกเสียจากว่าจะมีใครฉลาดกับ env vars / aliases / etc ฉันไม่ชอบคำตอบของฉันในอีกสิบปีต่อมา แต่การแก้ไข xแทน y นั้นดีมากและในกรณีนี้ได้ช่วยคนหลายร้อยคน
                    SELECT *
FROM pg_settings
WHERE name = 'port';คำสั่งนี้จะให้หมายเลขพอร์ต postgres แก่คุณ
 \conninfoหาก postgres ทำงานบนเซิร์ฟเวอร์ Linux คุณสามารถใช้คำสั่งต่อไปนี้ได้
sudo netstat -plunt |grep postgresหรือ (ถ้าเป็นไปรษณีย์)
sudo netstat -plunt |grep postmasterและคุณจะเห็นสิ่งที่คล้ายกันเช่นนี้
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      140/postgres
tcp6       0      0 ::1:5432                :::*                    LISTEN      140/postgresในกรณีนี้หมายเลขพอร์ตคือ 5432 ซึ่งเป็นหมายเลขพอร์ตเริ่มต้นด้วย
ลิงก์เครดิต
select inet_server_addr(); ให้ที่อยู่ IP ของเซิร์ฟเวอร์แก่คุณ
$postgres=# select inet_server_addr();   inet_server_addr  ------------------   (1 row)
                    select inet_server_port(); ให้พอร์ตของเซิร์ฟเวอร์แก่คุณ
select inet_server_addr( ), inet_server_port( );นี่เป็นวิธีที่ไม่ใช่ sql คำแนะนำจะได้รับในภาพตัวเอง เลือกเซิร์ฟเวอร์ที่คุณต้องการค้นหาข้อมูลเกี่ยวกับแล้วทำตามขั้นตอน

พอร์ต postgresql ถูกกำหนดไว้ในpostgresql.confไฟล์   ของคุณ
สำหรับฉันใน Ubuntu 14.04 มันคือ: /etc/postgresql/9.3/main/postgresql.conf
ข้างในมีบรรทัด:
port = 5432การเปลี่ยนหมายเลขต้องมีการรีสตาร์ท postgresql เพื่อให้มีผล
คุณสามารถใช้คำสั่งใน psql \conninfo
คุณจะได้รับYou are connected to database "your_database" as user "user_name" on host "host_name" at port "port_number".
จากเทอร์มินัลคุณสามารถทำได้:
\ conninfo
ฉันขอแนะนำให้อ่านเอกสารในรายการคำสั่งทั้งหมดโดยใช้:
\?
SELECT CURRENT_USER usr, :'HOST' host, inet_server_port() port;นี่ใช้ psql ที่สร้างขึ้นในตัวแปร HOST ซึ่งมีเอกสารอยู่ที่นี่
และ postgres ฟังก์ชั่นข้อมูลระบบเอกสารที่นี่
HOST /tmp
                    service postgresql statusผลตอบแทน: 10 / หลัก (พอร์ต 5432): ออนไลน์
ฉันใช้ Ubuntu 18.04