Ändern des PostgreSQL-Ports über die Befehlszeile

Mein PostgreSQL-Standardport ist 5432, ich möchte den Standardport über die Befehlszeile ändern (in Windows 7).

Ich habe diese Lösung bereits gesehen: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

Ich habe Folgendes ausgeführt Befehl, aber es ist fehlgeschlagen:

 postgres --p 5431  

Könnte mir jemand sagen, wie ich den Port ändern soll

Antwort

Da Sie unter Windows arbeiten und PostgreSQL wahrscheinlich als Windows-Dienst starten, haben Sie “ Sie müssen postgresql.conf (in Ihrem Datenverzeichnis) bearbeiten, um den neuen Port dort festzulegen, und dann den postgresql-Dienst über das Bedienfeld „Dienste“ oder (als Administrator) die net service.

Mit einem programmgesteuerten Textbearbeitungswerkzeug können Sie postgresql.conf ändern, wenn Sie dies automatisieren müssen. Unter einer Linux / Unix-Box würden Sie ein Tool wie sed oder awk verwenden, aber unter Windows stellen Sie sich vor, Sie würden VBS verwenden , Powershell oder ein Add-On-Tool wie Perl.

Sie müssen die Verbindungseinstellungen in Tools wie PgAdmin-III ändern, um den neuen Port zu verwenden.

Wenn Sie PostgreSQL manuell mit pg_ctl starten, können Sie die Umgebungsvariable PGPORT festlegen oder eine Konfigurationsoption für das übergeben Befehlszeile. Dies funktioniert nicht, wenn Sie es als Windows-Dienst starten.

Kommentare

  • I ' Ich verwende " Swiss File Knife ", um das Ersetzen in Textdateien unter Windows durchzuführen.
  • @a_horse_with_no_name Nützliches Tool, wenn Sie ' keine fileutils / coreutils / etc haben; danke für den Tipp.
  • Also kann ich ' Verwenden Sie die Befehlszeile nicht, um den pgsql-Port in Windows zu ändern?
  • @NickHung Ja, Sie können, wie oben erläutert, die Konfigurationsdatei mit einem Textprozessor ändern oder ' PostgreSQL nicht als Windows-Dienst ausführen und stattdessen mit pg_ctl.

Antwort

  • gehe zu .. \ PostgreSQL \ 9.0 \ data und öffnen Sie die Datei postgresql.conf im Texteditor / Editor.
  • Suchen Sie nach dem Portparameter .eg: port = 5433
  • Bearbeiten Sie diese in Ihre Portnummer.
  • Führen Sie den Typ services.msc aus und starten Sie den postgresql-Dienst neu.

Sie können über das Abfragetool überprüfen, ob der Parameter eingestellt ist oder nicht. Führen Sie einfach die Abfrage show port aus. Es wird Ihre aktuelle Portnummer angezeigt. Wenn Sie pgAdmin verwenden, um eine Verbindung zu db herzustellen, stellen Sie sicher, dass Sie Ihre Portnummer in den Verbindungseinstellungen geändert haben.

Antwort

Eine Lösung, die dies tut Wenn kein Text ersetzt werden muss oder ähnliche Techniken erforderlich sind, müssen Sie die verschiedenen Ports in einer separaten Konfigurationsdatei konfigurieren und anschließend eine include-Direktive an die Datei postgresql.conf anhängen.

zB

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

(Natürlich \path\to\datadir\ muss durch den richtigen Pfad ersetzt werden)

Der erste echo Befehl erstellt einen neuen Datei mit nur der Portkonfiguration. Die zweite fügt eine Include-Direktive an die vorhandene Postgres-Konfigurationsdatei an. Da die „späteren“ Einstellungen „frühere“ Einstellungen in der Datei überschreiben, wird jede in postgresql.conf vorgenommene Portkonfiguration mit der in der benutzerdefinierten Konfigurationsdatei überschrieben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.