ENDGÜLTIGES UPDATE:
Ich hatte vergessen, den initdb
Befehl auszuführen .
</ FINAL UPDATE>
durch Ausführen dieses Befehls
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
Dies 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 habe ich dies stattdessen getan:
> 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 gab (nur pg_hba.conf.sample), also habe ich das Sample geändert und umbenannt (um das .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 seltsam:
> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory
Ich habe dies jedoch getan:
>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 gemacht:
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 das 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 das gleiche "Läuft der Server?" Botschaft.
quelle
sudo
, dhsudo pg_ctl...
Antworten:
Der Homebrew- Paketmanager enthält Startlisten, die automatisch gestartet werden. Weitere Informationen finden Sie unter
brew info postgres
.Manuell starten:
pg_ctl -D /usr/local/var/postgres start
Manuell anhalten:
pg_ctl -D /usr/local/var/postgres stop
Automatisch starten:
"Damit startd postgresql jetzt startet und beim Login neu startet:"
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:
Überprüfen Sie die listen_addresses und den Port in postgresql.conf:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
Aufräumen
Postgres wurde höchstwahrscheinlich über Homebrew , Fink , MacPorts oder das EnterpriseDB- Installationsprogramm installiert.
Überprüfen Sie die Ausgabe der folgenden Befehle, um festzustellen, mit welchem Paketmanager es installiert wurde:
quelle
brew services start postgresql
ist eine aktuellere und einfachere Antwort.Wenn Sie postgresql (über Homebrew installiert) manuell starten und stoppen möchten, ist der einfachste Weg:
und
Wenn Sie eine bestimmte Version haben, stellen Sie sicher, dass Sie die Version mit einem Suffix versehen, zum Beispiel:
quelle
brew services
früher ... dies ist die einzige Lösung, die für mich funktioniert. <3 danke!brew tap gapple/services
wird den Befehl für die Brauereidienste wieder funktionieren lassenbrew tap homebrew/services
noch github.com/Homebrew/homebrew-servicesinitdb
es erfolgreich ausgeführt wurde. Es scheitert sonst leise (aber scheint mit dem Service zeigt gearbeitet zu haben, wie es begann inbrew services list
.brew services restart postgresql
, da das Starten der Datenbank mit pg_ctl oderbrew services start
"ein anderer Server läuft möglicherweise" und das Stoppen der Datenbank mit pg_ctl hängen blieb.Ich hatte fast genau das gleiche Problem, und Sie haben den Befehl initdb als Fix angegeben. Dies war auch die Lösung für mich, aber ich habe nicht gesehen, dass jemand es hier gepostet hat, also für diejenigen, die danach suchen:
quelle
rm -rf /usr/local/var/postgres
und dann funktionierte das für michchown _your username on your comp_ usr/local/var/postgres
) und dann initdb chown. Danach startet der Server automatisch beim Neustart (wenn Sie die Anweisungen von Homebrew befolgt haben) oder manuellpg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
.initdb
(einschließlich Entfernen des alten Verzeichnisses, falls erforderlich),brew services start postgresql
funktioniertrm -rf
alles, was sich derzeit in Ihrer Datenbank befindet, ein wenig zu erschrecken, anstatt es vollständig zu löschen, können Siemv /usr/local/var/postgres /usr/local/var/postgres.backup
es in ein neues Sicherungsverzeichnis verschieben und dann den Befehl ausführen, um die Datenbank erneut zu starten.Wenn Ihr Computer abrupt neu gestartet wurde
Zuerst müssen Sie die Datei löschen.
/usr/local/var/postgres/postmaster.pid
Anschließend können Sie den Dienst abhängig von Ihrer Installation mit einer der vielen anderen genannten Methoden neu starten.Sie können dies überprüfen, indem Sie in den Protokollen von Postgres nachsehen, was möglicherweise vor sich geht:
tail -f /usr/local/var/postgres/server.log
quelle
tail -f /usr/local/var/postgres/server.log
, ob Sie diese Datei löschen sollten. ref coderwall.com/p/zf-fww/…~/homebrew/var/postgres/postmaster.pid
postmaster.pid
wenn der Computer abrupt neu gestartet wurde?Ein anderer Ansatz ist die Verwendung von Lunchy Gem (ein Wrapper für Launchctl):
So starten Sie postgres:
So stoppen Sie Postgres:
Weitere Informationen finden Sie unter: " So installieren Sie PostgreSQL auf einem Mac mit Homebrew und Lunchy "
quelle
Hier meine 2 Cent: Ich habe einen Alias für postgres pg_ctl erstellt und in .bash_profile eingefügt (meine postgresql-Version ist 9.2.4 und der Datenbankpfad ist /Library/PostgreSQL/9.2/data).
Starten Sie ein neues Terminal.
Und dann? Sie können Ihren Postgresql-Server folgendermaßen starten / stoppen:
quelle
Der mit Abstand sauberste Weg, um Postgres zu starten / zu stoppen / neu zu starten, wenn Sie es installiert haben,
brew
besteht darin, einfach die mit der Installation gelieferte Startkonfigurationsdatei zu entladen und / oder zu laden:Die erste Zeile stoppt postgres und die zweite Zeile startet es. Es müssen keine Datenverzeichnisse usw. angegeben werden, da sich alles in dieser Datei befindet.
quelle
brew services start postgres
(Und Stop). Werfen Sie ein-v
am Ende und Sie können sehen, was es tut.So starten Sie den Postgresql-Server:
So beenden Sie den Postgresql-Server:
Sie können auch einen Alias über die CLI erstellen, um dies zu vereinfachen:
Mit diesen können Sie einfach "pg-start" eingeben, um Postgres zu starten, und "pg-stop", um es herunterzufahren.
quelle
pg_ctl: directory "/usr/local/var/postgres" is not a database cluster directory
wie ich das beheben kann.Zu Testzwecken halte ich die PostgreSQL-App für die beste Option!
Führen Sie eine App aus, und der Server ist betriebsbereit. Schließen Sie die App und der Server fällt aus.
http://postgresapp.com/
quelle
Wenn Sie postgresql mit homebrew installieren:
Am Ende der Ausgabe sehen Sie folgende Methoden zum Starten des Servers:
Ich denke, das ist der beste Weg.
Sie können Ihrem .profile der Einfachheit halber einen Alias hinzufügen.
quelle
Für eine schnelle Einweg-Testdatenbank können Sie den Server im Vordergrund ausführen.
Initialisieren Sie eine neue Postgres-Datenbank in einem neuen Verzeichnis
Starten Sie den Server im Vordergrund (Strg-C, um den Server zu stoppen)
Stellen Sie in einer anderen Shell-Sitzung eine Verbindung zum Server her
quelle
Ich habe das gleiche Problem und führe alle Updates vom ersten Beitrag durch. Aber nach Prüfung der Protokolldatei:
Ich sehe wahre Ursache:
Nach Änderungsberechtigung für dieses Verzeichnis
Der Postgres-Server wurde gestartet.
Überprüfen Sie die Protokolldatei jedes Mal.
quelle
PostgreSQL ist in Server.app integriert und über den App Store in Mountain Lion erhältlich. Das bedeutet, dass es bereits konfiguriert ist und Sie es nur starten und dann Benutzer und Datenbanken erstellen müssen.
Tipp : Beginnen Sie nicht mit der Definition von $ PGDATA usw. Nehmen Sie die Dateispeicherorte unverändert.
Sie hätten diese Datei: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
Anfangen:
Prozess begann mit Argumenten:
/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 log_filename = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = on -c log_statement = ddl -c logging_collector = on -c unix_socket_directory = / private / var / pgsql_socket -c unix_socket
Sie können sudo:
Oder verbinden:
Sie finden das Datenverzeichnis, die Version, den Ausführungsstatus usw. mit
quelle
Variation dieser Antwort: https://stackoverflow.com/a/13103603/2394728
quelle
Für Entwicklungszwecke besteht eine der einfachsten Möglichkeiten darin, Postgres.app von der offiziellen Website zu installieren . Es kann über den Anwendungsordner oder mit den folgenden Befehlen im Terminal gestartet / gestoppt werden:
quelle
killall
ist wahrscheinlich nicht der beste Weg, um eine Datenbank zu stoppen.quelle
Wenn Sie mit Brew installiert haben, sollte der folgende Befehl ausreichen.
Und dies funktioniert manchmal möglicherweise nicht. In diesem Fall sollten zwei Befehle auf jeden Fall funktionieren
quelle
Keine der oben genannten Antworten hat das Problem für mich behoben, obwohl die gleichen Fehlermeldungen angezeigt wurden. Ich konnte meine Instanz wieder zum Laufen bringen, indem ich die vorhandene postmaster.pid-Datei löschte, die gesperrt war und keine Verbindungen zuließ.
quelle
Verwenden Sie für Macports einfach den Befehl load / unload und den Portnamen des laufenden Servers:
Sie müssen sich also nicht merken, wo sich die
/Library/LaunchDaemons/org.macports.postgresql96.plist
Datei befindetquelle
https://hub.docker.com/_/postgres
quelle
Wenn Sie Postgres mit dem EnterpriseDB-Installationsprogramm installiert haben, ist @Kenial der richtige Weg.
quelle
das hat bei mir funktioniert (macOS 10.13)
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
oder zuerst
cd /Library/PostgreSQL/9.6/bin/
quelle
$ brew upgrade postgres
habe es für mich behoben.
Dadurch wird natürlich Ihre Postgres-Version aktualisiert und alle Abhängigkeiten aktualisiert / installiert.
quelle
Für Mac / OSX mag ich LaunchRocket für diesen und andere Hintergrunddienste, die ich in der Entwicklung verwendet habe.
https://github.com/jimbojsb/launchrocket
Diese Seite enthält nette Anweisungen zur Installation: http://macappstore.org/launchrocket/
Dies gibt Ihnen einen schönen Bildschirm in Ihren Systemeinstellungen, auf dem Sie beim Anmelden starten, neu starten, rooten und starten können.
quelle
Dies funktionierte jedes Mal für mich, inspiriert von Craig Ringer:
proctools enthält pkill. Wenn Sie kein Gebräu haben: https://brew.sh/
quelle
Der Vollständigkeit halber: Überprüfen Sie, ob Sie sich in einer
Tmux
oder einerScreen
Instanz befinden. Von dort aus funktioniert das Starten nicht.Von: /superuser/879640/error-while-trying-to-start-postgres-installed-via-homebrew-operation-not-permi/898585
Das hat es für mich gelöst.
quelle
Es gibt einen Randfall, der vielleicht für jemanden hilfreich sein wird:
Es besteht die Möglichkeit, dass postgres.pid mit einer PID gefüllt ist. Wenn Sie Ihren Computer jedoch neu starten und bevor der Postgress wieder zurück ist, wird diese PID von einem anderen Prozess verwendet. In diesem Fall werden Sie sowohl vom pg_ctl-Status als auch vom Brühdienst, der nach dem Postgres-Status gefragt wird, darüber informiert, dass der Status UP ist. Nur ps aux | grep und überprüfe, ob es wirklich postgress ist
quelle
Homebrew ist der Weg !!
So starten Sie den Dienst:
Um es aufzulisten:
um den Dienst zu stoppen.:
quelle
Wenn Sie es nicht mit Brew und direkt vom Mac-Paket installiert haben, funktionierte dies für mich für PostgreSQL 12, wenn alle Standardspeicherorte, -variablen usw. verwendet wurden.
quelle
Ich hatte das gleiche Problem. Versuchte alle diese Lösungen, aber keine funktionierte.
Endlich gelang es, es zum Laufen zu bringen, indem postgres HOST in den Django-Einstellungen von
localhost
auf geändert wurde127.0.0.1
.Prost, wenn es hilft.
quelle