Zmiana portu PostgreSQL za pomocą wiersza poleceń

Mój domyślny port PostgreSQL to 5432, chcę zmienić domyślny port za pomocą wiersza poleceń (w Windows 7).

Widziałem już to rozwiązanie: https://stackoverflow.com/questions/187438/want-to-change-pgsql-port

Próbowałem uruchomić następujący polecenie, ale nie powiodło się:

 postgres --p 5431  

Czy ktoś mógłby mi powiedzieć, jak zmienić port korzystając z wiersza poleceń?

Odpowiedz

Ponieważ „pracujesz w systemie Windows i prawdopodobnie uruchamiasz PostgreSQL jako usługę systemu Windows,” Będę musiał edytować postgresql.conf (w katalogu danych), aby ustawić tam nowy port, a następnie ponownie uruchomić usługę postgresql za pomocą panelu sterowania usług lub (jako administrator) net service.

Możesz użyć programowego narzędzia do edycji tekstu, aby zmienić postgresql.conf, jeśli chcesz to zautomatyzować. Na komputerze z systemem Linux / unix „używałbyś narzędzia takiego jak sed lub awk, ale wyobrażam sobie, że w systemie Windows będziesz używać VBS , powershell lub narzędzie dodatkowe, takie jak Perl.

Aby korzystać z nowego portu, musisz zmienić ustawienia połączenia w narzędziach takich jak PgAdmin-III.

Jeśli uruchamiasz PostgreSQL ręcznie za pomocą pg_ctl, możesz ustawić zmienną środowiskową PGPORT lub przekazać opcję config w wiersz poleceń. To nie zadziała po ponownym uruchomieniu go jako usługi systemu Windows.

Komentarze

  • I ' m używając " Swiss File Knife " do zamiany plików tekstowych w systemie Windows.
  • @a_horse_with_no_name Przydatne narzędzie, gdy nie ' nie masz fileutils / coreutils / etc; dzięki za wskazówkę.
  • Więc mogę ' t używać wiersza poleceń do zmiany portu pgsql w systemie Windows?
  • @NickHung Tak, możesz, jak wyjaśniono powyżej – użyć procesora tekstu do zmiany pliku konfiguracyjnego lub nie ' t uruchamiać PostgreSQL jako usługę Windows i zamiast tego uruchomić go z pg_ctl.

Odpowiedź

  • przejdź do .. \ PostgreSQL \ 9.0 \ data i otwórz plik postgresql.conf w edytorze tekstu / notatniku
  • wyszukaj parametr portu .eg: port = 5433
  • zmień go na swój numer portu.
  • przejdź do uruchomienia service.msc i zrestartuj usługę postgresql.

możesz sprawdzić, czy parametr jest ustawiony, czy nie, za pomocą narzędzia do wysyłania zapytań. po prostu wykonaj zapytanie show port. wyświetli aktualny numer portu. Jeśli używasz pgAdmin do łączenia się z db, upewnij się, że zmieniłeś numer portu w ustawieniach połączenia.

Odpowiedź

Rozwiązanie, które to robi nie wymaga zastępowania tekstu lub podobnych technik polega na skonfigurowaniu innego portu w oddzielnym pliku konfiguracyjnym, a następnie dołączeniu dyrektywy include do pliku postgresql.conf.

np.

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

(Oczywiście \path\to\datadir\ należy zastąpić poprawną ścieżką)

Pierwsze polecenie echo tworzy nową plik zawierający tylko konfigurację portu. Drugi dołącza dyrektywę include do istniejącego pliku konfiguracyjnego postgres. Ponieważ „późniejsze” ustawienia zastępują „wcześniejsze” ustawienia w pliku, każda konfiguracja portu wykonana w postgresql.conf zostanie nadpisana tą z niestandardowego pliku konfiguracyjnego.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *