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
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.
pg_ctl
.