Schimbarea portului PostgreSQL folosind linia de comandă

Portul meu implicit PostgreSQL este 5432, vreau să schimb portul implicit folosind linia de comandă (în Windows 7).

Am mai văzut această soluție: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

Am încercat să rulez următoarele comanda, dar a eșuat:

 postgres --p 5431  

Ar putea cineva să-mi spună cum să schimb portul în utilizarea liniei de comandă?

Răspuns

Deoarece sunteți pe Windows și probabil începeți PostgreSQL ca serviciu Windows, dvs. ” Va trebui să editați postgresql.conf (în directorul de date) pentru a seta noul port acolo, apoi reporniți serviciul postgresql folosind panoul de control Servicii sau (ca administrator) net service.

Puteți utiliza un instrument de editare a textului programatic pentru a modifica postgresql.conf dacă trebuie să automatizați acest lucru. Pe o casetă Linux / unix, ați folosi un instrument precum sed sau awk, dar pe Windows îmi imaginez că veți folosi VBS , powershell sau un instrument de completare precum Perl.

Va trebui să modificați setările conexiunii în instrumente precum PgAdmin-III pentru a utiliza noul port.

Dacă ați porni manual PostgreSQL folosind pg_ctl ați putea seta variabila de mediu PGPORT sau puteți trece o opțiune de configurare pe linia de comandă. Acest lucru nu va funcționa când îl lansați din nou ca serviciu Windows.

Comentarii

  • I ' m folosind " Swiss File Knife " pentru a înlocui fișierele text pe Windows.
  • @a_horse_with_no_name Instrument util când nu aveți ' nu aveți fileutils / coreutils / etc; mulțumesc pentru sfat.
  • Deci pot ' nu folosiți linia de comandă pentru a schimba portul pgsql în Windows?
  • @NickHung Da, puteți, după cum s-a explicat mai sus, să utilizați un procesor de text pentru a schimba fișierul de configurare sau să nu executați ' să rulați PostgreSQL ca serviciu Windows și, în schimb, să îl porniți cu pg_ctl.

Răspuns

  • accesați .. \ PostgreSQL \ 9.0 \ data și deschideți fișierul postgresql.conf în editorul de text / notepad
  • căutați parametrul de port .eg: port = 5433
  • editați-l la numărul de port.
  • accesați tipul services.msc și reporniți serviciul postgresql.

puteți verifica dacă parametrul este setat sau nu prin intermediul instrumentului de interogare. pur și simplu executați interogarea show port. va afișa numărul de port curent. Dacă utilizați pgAdmin pentru a vă conecta la db, asigurați-vă că ați schimbat numărul portului în setările conexiunii.

Răspuns

O soluție care nu nu necesită înlocuirea textului sau tehnici similare este să configurați portul diferit într-un fișier de configurare separat, apoi adăugați o directivă include fișierului postgresql.conf.

eg

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

(Desigur \path\to\datadir\ trebuie înlocuit cu calea corectă)

Prima comandă echo creează o nouă fișier cu doar configurația portului. Al doilea adaugă o directivă include fișierului de configurare postgres existent. Deoarece setările „ulterioare” anulează setările „anterioare” din fișier, orice configurație de port realizată în postgresql.conf va fi suprascrisă cu cea din fișierul de configurare personalizat.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *