Frage Wie starte ich den PostgreSQL Server unter Mac OS X?


Letzter UPDATE:

Ich hatte vergessen, den Befehl initdb auszuführen.

</ Letztes Update>

indem Sie diesen Befehl ausführen

ps auxwww | grep postgres

Ich sehe, dass Postgres nicht läuft

> ps auxwww | grep postgres
remcat          1789   0.0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

Das wirft die Frage auf: Wie starte ich den postgresql Server?

aktualisieren:

>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

Update 2:

Die Berührung war nicht erfolgreich, also tat ich das stattdessen:

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/          
server.log

Aber wenn ich versuche, den Rails Server zu starten, sehe ich immer noch folgendes:

Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?

Update 3:

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

Update 4:

Ich fand, dass es keine pg_hba.conf (nur pg_hba.conf.sample) gab, also änderte ich die Probe und benannte sie um (um die .sample zu entfernen). Hier sind die Inhalte:

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

aber ich verstehe das nicht:

> 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

ebenfalls:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

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

Update 6:

das scheint merkwürdig:

> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

obwohl ich das getan habe:

>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

also habe ich das getan:

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

Also habe ich Folgendes versucht:

> 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 

immer noch dasselbe "Läuft der Server?" Botschaft.


763
2017-11-02 03:55


Ursprung


Antworten:


Das Homebrew Der Paketmanager enthält launchctl plists, um automatisch zu starten. Für weitere Informationen ausführen brew info postgres.

Manuell starten:

pg_ctl -D /usr/local/var/postgres start

Stoppen Sie manuell:

pg_ctl -D /usr/local/var/postgres stop

Automatisch starten:

"Um launchd zu starten, starte jetzt postgresql und starte bei der Anmeldung neu:"

brew services start postgresql 


Was ist das Ergebnis von pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start?

Was ist das Ergebnis von pg_ctl -D /usr/local/var/postgres status?

Gibt es Fehlermeldungen in der Datei server.log?

Stellen Sie sicher, dass tcp localhost-Verbindungen in pg_hba.conf aktiviert sind:

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

Überprüfen Sie die listen_addresses und den Port in postgresql.conf:

egrep 'listen|port' /usr/local/var/postgres/postgresql.conf

#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)

Aufräumen

Postgres wurde höchstwahrscheinlich via installiert Homebrew, Fink, MacPorts oder der EnterpriseDB Installateur.

Überprüfen Sie die Ausgabe der folgenden Befehle, um festzustellen, mit welchem ​​Paketmanager sie installiert wurde:

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres

1449



Wenn Sie postgresql (installiert über Homebrew) manuell starten und stoppen möchten, ist der einfachste Weg:

brew services start postgresql

und

brew services stop postgresql

275



Ich hatte fast genau das gleiche Problem, und Sie haben den initdb-Befehl als die Lösung bezeichnet. Dies war auch die Lösung für mich, aber ich habe nicht gesehen, dass es jemand hier gepostet hat, also für diejenigen, die danach suchen:

initdb /usr/local/var/postgres -E utf8

168



Ein anderer Ansatz ist die Verwendung von lunchy gem (ein Wrapper für launchctl):

brew install postgresql
initdb /usr/local/var/postgres -E utf8
gem install lunchy

Um Postgres zu starten:

lunchy start postgres

Um Postgres zu stoppen:

lunchy stop postgres

Für weitere Informationen siehe: "Wie installiert man PostgreSQL auf einem Mac mit Homebrew und Lunchy"


78



Hier meine 2 Cent: Ich habe einen Alias ​​für Postgreads pg_ctl erstellt und in .bash_profile eingetragen (meine postgresql-Version ist 9.2.4 und der Datenbankpfad ist /Library/PostgreSQL/9.2/data).

alias postgres.server="sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.2/data"

Neues Terminal starten

Und dann? Sie können Ihren PostgreSQL-Server damit starten / stoppen:

postgres.server start
postgres.server stop

69



Wenn Ihr Computer abrupt neu gestartet wurde

Zuerst müssen Sie die Datei löschen /usr/local/var/postgres/postmaster.pid Dann können Sie den Dienst abhängig von Ihrer Installation mit einer der vielen anderen erwähnten Methoden neu starten.

Sie können dies überprüfen, indem Sie sich die Protokolle von Postgres ansehen, um zu sehen, was passiert: tail -f /usr/local/var/postgres/server.log


56



Der sauberste Weg bei weitem um postgres zu starten / stoppen / neu zu starten, wenn Sie es installiert haben brew ist einfach zu entladen und / oder laden Sie die launchd Konfigurationsdatei, die mit der Installation kommt:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Die erste Zeile stoppt postgres und die zweite Zeile startet sie. Sie müssen keine Datenverzeichnisse usw. angeben, da sich alles in dieser Datei befindet.


33



So starten Sie den Postgresql-Server:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

um den postgresql Server zu beenden:

pg_ctl -D /usr/local/var/postgres stop -s -m fast

Sie können auch einen Alias ​​über CLI erstellen, um es einfacher zu machen:

alias pg-start='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
alias pg-stop='pg_ctl -D /usr/local/var/postgres stop -s -m fast'

Mit diesen können Sie einfach "pg-start" eingeben, um Postgres zu starten und "pg-stop", um es herunterzufahren.


27



Zu Testzwecken denke ich, PostgreSQL App ist die beste Option!

Führen Sie eine App aus, und der Server ist betriebsbereit. Schließen Sie die App und der Server geht aus.

http://postgresapp.com/


20