AKTUALIZACJA KOŃCOWA:
Zapomniałem uruchomić initdb
polecenia.
</ KOŃCOWA AKTUALIZACJA>
uruchamiając to polecenie
ps auxwww | grep postgres
Widzę, że postgres nie działa
> ps auxwww | grep postgres
remcat 1789 0.0 0.0 2434892 480 s000 R+ 11:28PM 0:00.00 grep postgres
rodzi to pytanie: Jak uruchomić serwer Postgresql?
aktualizacja:
>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory
aktualizacja 2:
Dotyk nie był udany, więc zrobiłem to zamiast tego:
> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log
Ale kiedy próbuję uruchomić serwer Railsowy, nadal widzę to:
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
aktualizacja 3:
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
aktualizacja 4:
Odkryłem, że NIE BYŁO pg_hba.conf (tylko pg_hba.conf.sample), więc zmodyfikowałem próbkę i zmieniłem jej nazwę (aby usunąć .sample). Oto zawartość:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
ale nie rozumiem tego:
> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
również:
sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
aktualizacja 5:
sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
aktualizacja 6:
to wydaje się dziwne:
> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory
chociaż zrobiłem to:
>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample
więc zrobiłem to:
egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
# supported by the operating system:
# %r = remote host and port
więc próbowałem tego:
> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf
wciąż pojawia się ten sam komunikat „Czy serwer działa?” wiadomość.
macos
postgresql
homebrew
Ramy
źródło
źródło
sudo
, tj.sudo pg_ctl...
Odpowiedzi:
Homebrew menedżer Pakiet zawiera launchctl listy właściwości uruchomi się automatycznie. Aby uzyskać więcej informacji, uruchom
brew info postgres
.Uruchom ręcznie:
pg_ctl -D /usr/local/var/postgres start
Zatrzymaj ręcznie:
pg_ctl -D /usr/local/var/postgres stop
Uruchom automatycznie:
„Aby uruchomić, uruchom teraz postgresql i uruchom ponownie przy logowaniu:”
brew services start postgresql
Jaki jest wynik
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
?Jaki jest wynik
pg_ctl -D /usr/local/var/postgres status
?Czy w server.log są jakieś komunikaty o błędach?
Upewnij się, że połączenia tcp localhost są włączone w pg_hba.conf:
Sprawdź nasłuchiwanie adresów i portu w pliku postgresql.conf:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
Sprzątanie
Postgres najprawdopodobniej został zainstalowany za pośrednictwem Homebrew , Fink , MacPorts lub instalatora EnterpriseDB .
Sprawdź dane wyjściowe następujących poleceń, aby określić, z którym menedżerem pakietów został zainstalowany:
źródło
brew services start postgresql
jest bardziej aktualna i prosta.Jeśli chcesz ręcznie uruchomić i zatrzymać postgresql (zainstalowany przez homebrew), najprostszym sposobem jest:
i
Jeśli masz konkretną wersję, pamiętaj o sufiksie wersji, na przykład:
źródło
brew services
wcześniej ... to jedyne rozwiązanie, które działa dla mnie. <3 dzięki!brew tap gapple/services
sprawi, że komenda usług piwowarskich zacznie ponownie działaćbrew tap homebrew/services
nadal działa github.com/Homebrew/homebrew-servicesinitdb
pomyślnym uruchomieniu. W przeciwnym razie po cichu zawiedzie (ale wydaje się, że zadziałało, a usługa jest wyświetlana jako rozpoczęta wbrew services list
.brew services restart postgresql
, ponieważ uruchomiłem db z pg_ctl lubbrew services start
powiedziałem, że „inny serwer może być uruchomiony” i zatrzymałem db z pg_ctl.Miałem prawie taki sam problem, a ty zacytowałeś komendę initdb jako poprawkę. To było również rozwiązanie dla mnie, ale nie widziałem, żeby ktoś to tutaj opublikował, więc dla tych, którzy go szukają:
źródło
rm -rf /usr/local/var/postgres
a potem to zadziałało dla mniechown _your username on your comp_ usr/local/var/postgres
), a następnie initdb. Następnie serwer uruchamia się automatycznie po ponownym uruchomieniu (jeśli postępujesz zgodnie z instrukcjami Homebrew) lub ręczniepg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
.initdb
(łącznie z usunięciem starego katalogu, jeśli to konieczne),brew services start postgresql
działarm -rf
wszystkiego, co aktualnie znajduje się w bazie danych, nieco Cię przeraża, zamiast całkowicie go usunąć, możesz użyć czegoś takiego jakmv /usr/local/var/postgres /usr/local/var/postgres.backup
przeniesienie go do nowego katalogu kopii zapasowej, a następnie uruchom polecenie, aby ponownie uruchomić bazę danych.Jeśli komputer został nagle ponownie uruchomiony
Najpierw musisz usunąć plik.
/usr/local/var/postgres/postmaster.pid
Następnie możesz zrestartować usługę przy użyciu jednej z wielu innych wymienionych metod, w zależności od instalacji.Możesz to sprawdzić, przeglądając dzienniki Postgres, aby zobaczyć, co się dzieje:
tail -f /usr/local/var/postgres/server.log
źródło
tail -f /usr/local/var/postgres/server.log
czy powinieneś usunąć ten plik. ref coderwall.com/p/zf-fww/…~/homebrew/var/postgres/postmaster.pid
postmaster.pid
jeśli komputer został nagle ponownie uruchomiony?Innym podejściem jest użycie lunchy gem (otoki dla launchctl):
Aby rozpocząć postgres:
Aby zatrzymać postgres:
Aby uzyskać więcej informacji, zobacz: „ Jak zainstalować PostgreSQL na komputerze Mac z Homebrew i Lunchy ”
źródło
Oto moje 2 centy: Utworzyłem alias dla postgres pg_ctl i umieściłem go w .bash_profile (moja wersja postgresql to 9.2.4, a ścieżka do bazy danych to /Library/PostgreSQL/9.2/data).
Uruchom nowy terminal.
I wtedy? Możesz uruchomić / zatrzymać serwer postgresql w ten sposób:
źródło
Najczystszym sposobem zdecydowanie start / stop / restart postgres jeśli zainstalowano go przez
brew
to po prostu rozładować i / lub załadować plik konfiguracyjny launchd że pochodzi z instalacji:Pierwsza linia zatrzyma postgres, a druga linia ją uruchomi. Nie trzeba określać żadnych katalogów danych itp., Ponieważ wszystko jest w tym pliku.
źródło
brew services start postgres
(i zatrzymaj). Rzuć a-v
na końcu, a zobaczysz, co robi.Aby uruchomić serwer postgresql:
aby zakończyć serwer postgresql:
Możesz również utworzyć alias za pomocą interfejsu CLI, aby ułatwić:
Dzięki nim możesz po prostu wpisać „pg-start”, aby uruchomić Postgres, i „pg-stop”, aby go wyłączyć.
źródło
pg_ctl: directory "/usr/local/var/postgres" is not a database cluster directory
jak to naprawić?Do celów testowych uważam, że aplikacja PostgreSQL jest najlepszą opcją!
Uruchom aplikację, a serwer będzie działał. Zamknij aplikację, a serwer przestanie działać.
http://postgresapp.com/
źródło
po zainstalowaniu postgresql za pomocą homebrew:
na końcu danych wyjściowych zobaczysz następujące metody uruchomienia serwera:
Myślę, że to najlepszy sposób.
Dla wygody możesz dodać alias do swojego .profile.
źródło
W przypadku szybkiej testowej bazy danych jednorazowego użytku możesz uruchomić serwer na pierwszym planie.
Zainicjuj nową bazę danych Postgres w nowym katalogu
Uruchom serwer na pierwszym planie (ctrl-C, aby zatrzymać serwer)
W innej sesji powłoki połącz się z serwerem
źródło
Mam ten sam problem i wykonuję wszystkie aktualizacje od pierwszego postu. Ale po sprawdzeniu pliku dziennika:
Widzę prawdziwą przyczynę:
Po zmianie uprawnień do tego katalogu
serwer postgres został uruchomiony.
Plik dziennika kontroli za każdym razem.
źródło
PostgreSQL jest zintegrowany z Server.app dostępnym w App Store w Mountain Lion. Oznacza to, że jest już skonfigurowany i wystarczy go uruchomić, a następnie utworzyć użytkowników i bazy danych.
Wskazówka : nie zaczynaj od zdefiniowania $ PGDATA itd., Weź lokalizacje plików bez zmian.
Miałbyś ten plik: Miałbyś /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
Zacząć:
Proces rozpoczął się od argumentów:
/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D / Library / Server / PostgreSQL / Data -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = on -c log_directory = / Library / Logs / PostgreSQL -c nazwa_pliku_logu = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = na -c log_statement = ddl -c log_kolektor = na -c unix_socket_directory = / private / var / pgsql_socket -c unix_socket_group = _
Możesz sudo:
Lub połącz:
Możesz znaleźć katalog danych, wersję, status działania itd. Za pomocą
źródło
Odmiana tej odpowiedzi: https://stackoverflow.com/a/13103603/2394728
źródło
Do celów programistycznych jednym z najprostszych sposobów jest zainstalowanie Postgres.app z oficjalnej strony . Można go uruchomić / zatrzymać z folderu Aplikacje lub za pomocą następujących poleceń w terminalu:
źródło
killall
prawdopodobnie nie jest najlepszym sposobem na zatrzymanie bazy danych.źródło
Jeśli zainstalowałeś przy użyciu naparu, poniższe polecenie powinno wystarczyć.
I to czasami może nie działać, w takim przypadku poniżej dwa polecenia powinny zdecydowanie działać
źródło
żadna z powyższych odpowiedzi nie rozwiązała problemu, mimo że otrzymałem te same komunikaty o błędach. Udało mi się przywrócić działanie instancji, usuwając istniejący plik postmaster.pid, który został zablokowany i nie zezwalałem na połączenia.
źródło
W przypadku Macports wystarczy użyć polecenia load / unload i nazwy portu działającego serwera:
więc nie musisz pamiętać, gdzie
/Library/LaunchDaemons/org.macports.postgresql96.plist
znajduje się plikźródło
https://hub.docker.com/_/postgres
źródło
Jeśli zainstalowałeś Postgres przy użyciu instalatora EnterpriseDB, to co sugeruje @Kenial, jest właściwą drogą.
źródło
które działało dla mnie (macOS 10.13)
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
lub pierwszy
cd /Library/PostgreSQL/9.6/bin/
źródło
$ brew upgrade postgres
naprawiłem to dla mnie.
To oczywiście zaktualizuje twoją wersję postgres i zaktualizuje / zainstaluje wszelkie zależności.
źródło
W systemie Mac / OSX bardzo podoba mi się LaunchRocket dla tej i innych usług w tle, z których korzystałem podczas programowania.
https://github.com/jimbojsb/launchrocket
Ta strona zawiera ładne instrukcje dotyczące instalacji: http://macappstore.org/launchrocket/
Daje to ładny ekran w Preferencjach systemowych, który umożliwia uruchamianie, ponowne uruchamianie, rootowanie, uruchamianie podczas logowania.
źródło
To działało dla mnie za każdym razem, inspirowane Craig Ringer:
proctools obejmuje pkill. Jeśli nie masz Brew: https://brew.sh/
źródło
Ze względu na kompletność: Sprawdź, czy znajdujesz się w
Tmux
lubScreen
instancji instancji, stamtąd nie będzie działać.Od: /superuser/879640/error-while-trying-to-start-postgres-installed-via-homebrew-operation-not-permi/898585
To rozwiązało dla mnie.
źródło
Istnieje pewien przypadek, który może być komuś pomocny:
Istnieje opcja, że postgres.pid będzie wypełniony pewnym PID. Ale jeśli uruchomisz ponownie komputer i zanim postgress wróci ponownie, jakiś inny proces przyjmie ten PID. Jeśli tak się stanie, zarówno status pg_ctl, jak i usługa parzenia zapytane o status postgres, poinformują cię, że jest w GÓRZE. Tylko ps aux | grep i sprawdź, czy to naprawdę jest postgress
źródło
Homebrew jest drogą !!
Aby uruchomić usługę:
Aby to wymienić:
aby zatrzymać usługę:
źródło
Jeśli nie zainstalowałeś go za pomocą brew i bezpośrednio z pakietu Mac, działało to dla mnie dla PostgreSQL 12 przy użyciu wszystkich domyślnych lokalizacji, zmiennych itp.
źródło
Miałem ten sam problem. Próbowałem wszystkich tych rozwiązań, ale żadne nie działało.
Wreszcie udało się go uruchomić, zmieniając postgres HOST w ustawieniach Django z
localhost
na127.0.0.1
.Pozdrawiam, jeśli to pomaga.
źródło