การเปลี่ยนพอร์ต PostgreSQL โดยใช้บรรทัดคำสั่ง


10

พอร์ตเริ่มต้น PostgreSQL ของฉันคือ 5432 ฉันต้องการเปลี่ยนพอร์ตเริ่มต้นโดยใช้บรรทัดคำสั่ง (ใน Windows 7)

ฉันเห็นโซลูชันนี้มาก่อน: /programming/187438/want-to-change-pgsql-port

ฉันพยายามเรียกใช้คำสั่งต่อไปนี้ แต่มันล้มเหลว:

postgres --p 5431

มีคนบอกวิธีเปลี่ยนพอร์ตโดยใช้บรรทัดคำสั่งได้ไหม

คำตอบ:


9

เนื่องจากคุณใช้ Windows และอาจเริ่มใช้ PostgreSQL เป็นบริการ Windows คุณจะต้องแก้ไขpostgresql.conf(ภายในไดเรกทอรีข้อมูลของคุณ) เพื่อตั้งค่าพอร์ตใหม่ที่นั่นจากนั้นเริ่มบริการ postgresql ใหม่โดยใช้แผงควบคุมบริการหรือ (ในฐานะผู้ดูแลระบบ ) net serviceคำสั่ง

คุณสามารถใช้เครื่องมือแก้ไขข้อความแบบเป็นโปรแกรมเพื่อเปลี่ยนแปลงpostgresql.confหากคุณต้องการทำให้เป็นแบบอัตโนมัติ ในกล่อง Linux / Unix คุณต้องใช้เครื่องมือเช่นsedหรือawkแต่ใน Windows ฉันคิดว่าคุณกำลังใช้ VBS, PowerShell หรือเครื่องมือเสริมเช่น Perl

คุณจะต้องเปลี่ยนการตั้งค่าการเชื่อมต่อในเครื่องมือที่ต้องการPgAdmin-IIIใช้พอร์ตใหม่

หากคุณเริ่มต้น PostgreSQL ด้วยตนเองโดยใช้pg_ctlคุณสามารถตั้งค่าPGPORTตัวแปรสภาพแวดล้อมหรือผ่านตัวเลือกการกำหนดค่าในบรรทัดคำสั่ง สิ่งนี้จะไม่ทำงานเมื่อคุณเปิดใช้เป็นบริการของ Windows


ฉันใช้ "Swiss File Knife" เพื่อแทนที่ไฟล์ข้อความบน Windows
a_horse_with_no_name

@a_horse_with_no_name เครื่องมือที่มีประโยชน์เมื่อคุณไม่มี fileutils / coreutils / etc; ขอบคุณสำหรับทิป.
Craig Ringer

ดังนั้นฉันไม่สามารถใช้บรรทัดคำสั่งเพื่อเปลี่ยนพอร์ต pgsql ใน Windows ได้หรือไม่
Nick Hung

@NickHung ใช่คุณสามารถตามที่อธิบายไว้ข้างต้น - ใช้หน่วยประมวลผลข้อความที่จะเปลี่ยนไฟล์ config หรือไม่ได้ทำงาน PostgreSQL เป็นบริการของ Windows pg_ctlและแทนที่จะเริ่มต้นด้วย
Craig Ringer

7
  • ไปที่ .. \ PostgreSQL \ 9.0 \ data แล้วเปิดไฟล์ postgresql.conf ใน text editor / notepad
  • ค้นหาพารามิเตอร์ port .eg: port = 5433
  • แก้ไขสิ่งนี้เป็นหมายเลขพอร์ตของคุณ
  • ไปที่เรียกใช้ประเภท services.msc และเริ่มบริการ postgresql ใหม่

คุณสามารถตรวจสอบว่ามีการตั้งค่าพารามิเตอร์หรือไม่ผ่านเครื่องมือสืบค้นข้อมูล เพียงดำเนินการshow portค้นหา มันจะแสดงหมายเลขพอร์ตปัจจุบันของคุณ หากใช้ pgAdmin เพื่อเชื่อมต่อกับ db ตรวจสอบให้แน่ใจว่าคุณเปลี่ยนหมายเลขพอร์ตของคุณในการตั้งค่าการเชื่อมต่อ


0

โซลูชันที่ไม่ต้องการการแทนที่ข้อความหรือเทคนิคที่คล้ายกันคือการกำหนดค่าพอร์ตต่าง ๆ ในไฟล์กำหนดค่าแยกต่างหากจากนั้นผนวกคำสั่ง include เข้ากับpostgresql.confไฟล์

เช่น

echo port = 5431 > \path\to\datadir\custom.conf
echo include custom.conf>> \path\to\datadir\postgresql.conf

(แน่นอน\path\to\datadir\ต้องถูกแทนที่ด้วยเส้นทางที่ถูกต้อง)

echoคำสั่งแรกสร้างไฟล์ใหม่ที่มีเพียงการกำหนดค่าพอร์ต ส่วนที่สองผนวกคำสั่ง include เพื่อไฟล์การตั้งค่า postgres ที่มีอยู่ เนื่องจากการตั้งค่า "ภายหลัง" แทนที่การตั้งค่า "ก่อนหน้า" ในไฟล์การกำหนดค่าพอร์ตใด ๆ ที่ทำในpostgresql.confจะถูกเขียนทับด้วยการตั้งค่าในไฟล์ปรับแต่งที่กำหนดเอง

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