De PostgreSQL-poort wijzigen met de opdrachtregel

Mijn standaard PostgreSQL-poort is 5432, ik wil de standaardpoort wijzigen met de opdrachtregel (in Windows 7).

Ik heb deze oplossing eerder gezien: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

Ik heb geprobeerd het volgende uit te voeren commando, maar het is mislukt:

 postgres --p 5431  

Kan iemand me vertellen hoe ik de poort moet wijzigen in het gebruik van de opdrachtregel?

Answer

Aangezien u “op Windows zit en PostgreSQL waarschijnlijk start als een Windows-service,” Ik moet postgresql.conf (in je datadirectory) bewerken om de nieuwe poort daar in te stellen, en vervolgens de postgresql-service opnieuw starten met behulp van het Services-configuratiescherm of (als beheerder) de net service commando.

U kunt een programma voor het bewerken van tekst gebruiken om postgresql.conf te wijzigen als u dit wilt automatiseren. Op een Linux / Unix-box “zou je een tool gebruiken zoals sed of awk, maar op Windows zou ik me voorstellen dat je VBS zult gebruiken , powershell, of een add-on tool zoals Perl.

Je “zult de verbindingsinstellingen moeten veranderen in tools zoals PgAdmin-III om de nieuwe poort te gebruiken.

Als je PostgreSQL handmatig zou starten met pg_ctl, dan zou je de PGPORT omgevingsvariabele kunnen instellen of een configuratie-optie kunnen doorgeven aan de opdrachtregel. Dit zal “niet werken als je het opnieuw start als een Windows-service.

Opmerkingen

  • I ' m met " Swiss File Knife " om tekstbestanden op Windows te vervangen.
  • @a_horse_with_no_name Handige tool als je ' geen fileutils / coreutils / etc hebt; bedankt voor de tip.
  • Dus ik kan ' de opdrachtregel niet gebruiken om de pgsql-poort in Windows te wijzigen?
  • @NickHung Ja, u kunt, zoals hierboven uitgelegd – een tekstverwerker gebruiken om het configuratiebestand te wijzigen, of ' niet PostgreSQL als een Windows-service uitvoeren en in plaats daarvan starten met pg_ctl.

Antwoord

  • ga naar .. \ PostgreSQL \ 9.0 \ data en open het bestand postgresql.conf in teksteditor / notepad.
  • zoek naar poortparameter .eg: port = 5433
  • bewerk dit in je poortnummer.
  • ga naar type services.msc draaien en start de postgresql-service opnieuw.

u kunt controleren of de parameter al dan niet is ingesteld via de querytool. voer gewoon de show port query uit. het zal uw huidige poortnummer weergeven. Als u pgAdmin gebruikt om verbinding te maken met db, zorg er dan voor dat u uw poortnummer in de verbindingsinstellingen hebt gewijzigd.

Answer

Een oplossing die dat wel doet geen tekstvervanging of vergelijkbare technieken vereist is om de andere poort in een afzonderlijk configuratiebestand te configureren en vervolgens een include-instructie toe te voegen aan het postgresql.conf -bestand.

bijv.

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

(natuurlijk \path\to\datadir\ moet worden vervangen door het juiste pad)

De eerste echo -opdracht maakt een nieuwe bestand met alleen de poortconfiguratie. De tweede voegt een include-instructie toe aan het bestaande postgres-configuratiebestand. Aangezien de “latere” instellingen de “eerdere” instellingen in het bestand overschrijven, zal elke poortconfiguratie die is gedaan in postgresql.conf worden overschreven door die in het aangepaste configuratiebestand.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *