Ändra PostgreSQL-port med kommandorad

Min PostgreSQL-standardport är 5432, jag vill ändra standardport med kommandoraden (i Windows 7).

Jag såg den här lösningen tidigare: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

Jag försökte köra följande kommando, men det misslyckades:

 postgres --p 5431  

Kan någon berätta för mig hur man byter port när du använder kommandoraden?

Svar

Eftersom du är på Windows och förmodligen startar PostgreSQL som en Windows-tjänst, du ” Du måste redigera postgresql.conf (inuti din datakatalog) för att ställa in den nya porten där och starta sedan om postgresql-tjänsten med hjälp av Tjänstens kontrollpanel eller (som administratör) net service -kommando.

Du kan använda ett programmatiskt textredigeringsverktyg för att ändra postgresql.conf om du behöver automatisera detta. I en Linux / unix-ruta skulle du använda ett verktyg som sed eller awk, men på Windows antar jag att du kommer att använda VBS , powershell eller ett tilläggsverktyg som Perl.

Du måste ändra anslutningsinställningarna i verktyg som PgAdmin-III för att använda den nya porten.

Om du startade PostgreSQL manuellt med pg_ctl kan du ställa in PGPORT miljövariabel eller skicka ett konfigurationsalternativ på kommandorad. Detta fungerar inte när du startar den som en Windows-tjänst.

Kommentarer

  • I ' m använder " Swiss File Knife " för att byta ut textfiler i Windows.
  • @a_horse_with_no_name Användbart verktyg när du inte ' inte har filanvändning / coreutils / etc; tack för tipset.
  • Så jag kan ' Använd inte kommandoraden för att ändra pgsql-port i Windows?
  • @NickHung Ja, du kan, som förklarats ovan – använda en textbehandlare för att ändra konfigurationsfilen eller inte ' för att köra PostgreSQL som en Windows-tjänst och istället starta den med pg_ctl.

Svar

  • gå till .. \ PostgreSQL \ 9.0 \ data och öppna filen postgresql.conf i textredigerare / anteckningsblock
  • sök efter portparameter .eg: port = 5433
  • redigera detta till ditt portnummer.
  • gå till kör typ services.msc och starta om postgresql-tjänsten.

du kan kontrollera om parametern är inställd eller inte via frågeverktyget. kör bara show port frågan. det visar ditt aktuella portnummer. Om du använder pgAdmin för att ansluta till db, se till att du ändrade ditt portnummer i anslutningsinställningarna.

Svar

En lösning som gör inte kräver någon textbyte eller liknande tekniker är att konfigurera olika portar i en separat konfigurationsfil och sedan lägga till ett inkluderingsdirektiv till postgresql.conf -filen.

t.ex.

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

(Naturligtvis \path\to\datadir\ måste ersättas med rätt sökväg)

Det första echo -kommandot skapar ett nytt fil med bara portkonfigurationen. Den andra lägger till ett inkluderingsdirektiv till den befintliga konfigurationsfilen för postgres. Eftersom de ”senare” inställningarna åsidosätter ”tidigare” inställningar i filen, kommer alla portkonfigurationer som görs i postgresql.conf att skrivas över med den i den anpassade konfigurationsfilen.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *