Nachdem ich das Update und das Upgrade durchgeführt hatte, hatten meine Postgres ein Problem. Ich habe versucht, postgres zu deinstallieren und erneut zu installieren, aber es hat nicht so gut funktioniert.
Dies ist die Fehlermeldung. (Diese Fehlermeldung wird auch angezeigt, wenn ich versuche, "rake db: migrate" auszuführen.)
$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Wie kann ich das lösen?
Mac-Version: Berglöwe.
homebrew-Version: 0.9.3
postgres version: psql (PostgreSQL) 9.2.1
Und das habe ich getan.
12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".
initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$ cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-Arch x86_64" gem install pg
Building native extensions. This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Nachdem ich howbrew neu installiert habe und $ psql
verwende, wird keine Fehlermeldung angezeigt.
Aber ich starte rake db:migrate
in meiner Rails App, es zeigt:
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/Ruby/1.9.3-p327/lib/Ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}
Endlich finde ich die Lösung.
$ Sudo mkdir /var/pgsql_socket/
$ Sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
Diese Lösung ist zwar etwas knifflig, funktioniert aber. Hoffe jemand hat eine bessere Lösung
pdate
Das funktioniert auch bei mir.
rm /usr/local/var/postgres/postmaster.pid
Hatte ein ähnliches Problem; Eine PID-Datei blockierte den Start von Postgres. Etwas reparieren:
rm /usr/local/var/postgres/postmaster.pid
und dann ist alles gut.
Dies kann manchmal ein Problem bei einem Postgres-Upgrade sein.
In meinem Fall geschah dies beim Upgrade von 9.3 auf 9.4.
Siehe http://www.postgresql.org/docs/9.4/static/upgrading.html
OS X/Homebrew:
Versuchen Sie es mit postgres -D /usr/local/var/postgres
- es liefert eine viel ausführlichere Ausgabe, wenn postgres nicht startet.
In meinem Fall hat das Ausführen von rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
meine alten Datenbanken entfernt und dann das DB-Schema postgres neu initialisiert.
Vielen Dank an https://github.com/Homebrew/homebrew/issues/3524 für diese Lösung.
Nach der Neuerstellung meiner Datenbanken (mit rake db:create
) hat alles wieder funktioniert.
Hier wurde eine Lösung gefunden, die für mich funktioniert:
Grundsätzlich führen Sie den folgenden Befehl aus, um den Server manuell zu starten:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Wenn das Installieren und Deinstallieren von postgres mit brew bei Ihnen nicht funktioniert, lesen Sie die Protokolle Ihrer postgresql-Installation oder:
postgres -D /usr/local/var/postgres
wenn Sie diese Art von Ausgabe sehen:
LOG: skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.
Dann versuchen Sie folgendes:
rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8
Dann starte den Server:
pg_ctl -D /usr/local/var/postgres -l logfile start
Wenn in Yosemite die pid-Datei den Start von Postgres blockiert und ein launchctl
-Dämon versucht (und fehlschlägt), die Datenbank-Dämonen zu laden, müssen Sie die plist-Datei entladen:
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Dann entfernen Sie die PID-Datei
$ rm /usr/local/var/postgres/postmaster.pid
Laden Sie dann den Daemon launchctl
neu
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Wenn Sie dies lesen und Postgres.app verwenden, benötigen Sie möglicherweise Host: localhost
in Ihrer database.yml. http://postgresapp.com/documentation#toc_
brew services start postgres
arbeitete für mich!
Ein Upgrade der Datenbank funktioniert bei mir
brew postgresql-upgrade-database
Überprüfen Sie, ob die Socket-Datei vorhanden ist.
$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx 1 you wheel 0 Nov 16 09:22 /tmp/.s.PGSQL.5432
Wenn dies nicht der Fall ist, überprüfen Sie Ihre postgresql.conf auf unix_socket_directory-Änderungen.
$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = '' # (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
Das Problem kann auch auf einen abgestürzten Prozess zurückgeführt werden, der die Datei postmaster.pid zurückgelassen hat. Ich mache das und arbeite's:
$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql
Das Problem ist, dass auf dem Port 5432 bereits ein Dienst ausgeführt wird und wir über diesen Port keine psql-Socket-Verbindung herstellen können.
Ich habe die Socket-Datei entfernt
rm -rf /tmp/.s.PGSQL.5432/
Dann habe ich die Postgres-Dienste neu initialisiert
postgres -D /usr/local/var/postgres
Das hat bei mir funktioniert.
Das solltest du eigentlich tun:
sie sollten sich stattdessen /usr/local/var/postgres/postmaster.pid ansehen
und dann schauen Sie sich die erste Zeile der Datei an - das ist die schlechte PID
Lauf
ps aux | grep <PID>
zum Beispiel:
ps aux | grep 12345
dann mach
kill <PID>
zum Beispiel
kill 12345
Vorausgesetzt, es läuft noch
https://superuser.com/questions/553045/fatal-lock-file-postmaster-pid-already-exists
nicht auf die akzeptierte Antwort hören, es ist schlecht und wird Ihre Daten verfälschen !!!
Dies ist mir beim Upgrade von 9.3.4 auf 9.5 passiert, da die Datenbanken ohne Upgrade nicht kompatibel sind.
Ich habe pg_upgrade wie folgt benutzt:
Stoppen Sie Postgres
$ brew services stop postgresql
Aktualisieren Sie die Datenbanken:
$ pg_upgrade \
-d /usr/local/var/postgres \
-D /usr/local/var/postgres9.5 \
-b /usr/local/Cellar/postgresql/9.3.4/bin/ \
-B /usr/local/Cellar/postgresql/9.5.0/bin/ \
-v
Archivieren Sie die alten Datenbanken:
$ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
$ mv /usr/local/var/postgres9.5 /usr/local/var/postgres
Starten Sie postgres neu:
$ brew services start postgresql
Aktualisierte Edelsteine (für Rails/aktiven Datensatz):
$ gem uninstall pg
$ gem uninstall activerecord-postgresql-adapter
$ bundle install
Das Ändern der Konfigurationseinstellungen für postresql oder database.yml, das Ändern von $ PATH oder das Erstellen von Symlinks waren für mich allesamt unnötig. Alles, was ich tun musste, war gem uninstall pg
und dann bundle
(oder gem install pg
).
Das Problem war, dass das pg gem vor homebrew postgres installiert wurde und die Einstellungen aus der mit MacOS gelieferten Postgres-Version übernommen wurden. Die Neuinstallation (und damit die Wiederherstellung der nativen Erweiterung) hat das Problem behoben.
Der idiotensichere Weg, dies zu umgehen, ist zu tun
brew reinstall postgresql
Dadurch bleibt Ihre Benutzerberechtigung usw. erhalten und alles wird auf neu zurückgesetzt. Funktioniert die ganze Zeit!
Psql-Option
-h Hostname --Host = Hostname
: Gibt den Hostnamen des Computers an, auf dem der Server ausgeführt wird. Wenn der Wert mit einem Schrägstrich beginnt, wird er als Verzeichnis für den Unix-Domain-Socket verwendet.
$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433 # (change requires restart)
unix_socket_directory = '/var/run/postgresql' # (change requires resta
$ netstat -nalp | grep postgres
unix 2 [ ACC ] STREAM LISTENING 106753 4349/postgres /tmp/.s.PGSQL.5432
unix 2 [ ACC ] STREAM LISTENING 10377 1031/postgres /var/run/postgresql/.s.PGSQL.5433
Führen Sie psql mit der Option -Host aus
$ psql -p 5433 -h /var/run/postgresql
Keine Notwendigkeit, einen Softlink zu erstellen
Kam auch unter MacOS Sierra auf dieses Problem und als wir pg_ctl wie oben beschrieben ausführten, hatten wir den folgenden Fehler pg_ctl: no database directory specified and environment variable PGDATA unset
. Also folgten wir den Schritten hier , die unser Problem lösten, nämlich:
mkdir ~/.postgres
initdb ~/.postgres
pg_ctl -D ~/.postgres start
Das hat bei mir geklappt (als Mischung aus vorherigen Antworten):
$ rm /usr/local/var/postgres/postmaster.pid
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Quelle: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash
Wenn postgres mit homebrew installiert wurde, können Sie dies beheben, indem Sie Folgendes ausführen:
brew link postgres
Dies liegt daran, dass ein vorheriger Server noch ausgeführt wird. Versuchen Sie, alles herunterzufahren und Ihre Anwendung erneut auszuführen.
FWIW das ist mir heute passiert, aber was passiert ist, war, dass ich zu der Zeit Ubuntu-Updates ausgeführt habe, die wahrscheinlich Postgres aktualisierten. Sobald das Update abgeschlossen war, konnte ich ohne Probleme eine Verbindung herstellen.
Der Vollständigkeit halber habe ich versucht, Datensätze von einer Rails Konsole aus der Datenbank abzurufen:
development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Ich habe das gleiche Problem, weil ich einen falschen Postgres-Benutzernamen im Code verwende. Ich habe mich bei postgres psql -d postgres
angemeldet und \du
eingegeben, um den Rollennamen zu übernehmen und den Benutzernamen von Postgres zu korrigieren.
Wenn Sie dieses Problem haben, müssen Sie sicherstellen, dass Sie den richtigen Postgres-Benutzernamen, das richtige Passwort, den richtigen Hostnamen und die richtige Datenbank verwenden ...
Hoffe das wird jedem helfen
Dies passiert, wenn der Postgres-Server nicht läuft. Schritte zum korrekten Installieren von Postgres über Homebrew auf MAC:
brew install postgres
initdb /Users/<username>/db -E utf8
[Dies initialisiert postgres, um das angegebene Verzeichnis als Datenbankverzeichnis zu verwenden. Normalerweise wird davon abgeraten, das Benutzerverzeichnis für die Datenbankspeicherung zu verwenden. Bearbeiten Sie die sudoers-Datei, um initdb und ähnliche Befehle hinzuzufügen, und führen Sie dann initdb unter/usr/local/var/postgres aus.]
pg_ctl -D /Users/<username>/db -l logfile start
[Nach erfolgreicher Ausführung von Schritt 2 wird zur Ausführung von Schritt 3 aufgefordert. Dieser Befehl startet den Server manuell.]
Es sieht so aus, als würde dein psql nicht laufen. Sie sollten es ausführen, bevor Sie eine Verbindung herstellen. Sie können dies nur mit Postgres.app für Mac OS tun. (Laden Sie diese App herunter und installieren Sie sie http://postgresapp.com ) Öffnen Sie die App, und Sie haben einen PostgreSQL-Server, der auf neue Verbindungen wartet. Schließen Sie die App und der Server wird heruntergefahren. Sie finden diese Informationen auch hier http://www.postgresql.org/download/macosx/ . Hoffe das wird dir helfen.
¿Hast du kürzlich die pg_hba.conf geändert? Wenn Sie nur nach Tippfehlern gesucht haben:
local all all password
Host all all 127.0.0.1/32 Passwort
Host all all :: 1/128 Passwort
Manchmal kann uns ein einfacher Fehler Kopfschmerzen bereiten. Ich hoffe, dass diese Hilfe und Entschuldigung, wenn mein Englisch überhaupt nicht gut ist.
Für diejenigen, die diesen Befehl verwenden und nicht funktionieren oder die Datei nicht vorhanden ist und Ruby auf Rails verwenden
rm /usr/local/var/postgres/postmaster.pid
Oder irgendeinen anderen Befehl und scheitern einfach weiter.
Ich habe dieses Problem bei der Deinstallation mit Brew gelöst. Ich musste 2 Mal mit brew deinstallieren, da bei der ersten Deinstallation eine andere Version von postgresql verbleibt. Bei der zweiten Deinstallation wird der Vorgang abgeschlossen.
Installieren Sie postgresql mit Brew
Dann löschen, erstellen und migrieren Sie die Datenbanken des Projekts
(Vergiss nicht den postgresql Server zu starten)
Für mich war es ein Apache-Upgrade, das das Problem verursachte. Ich könnte immer noch psql in der Konsole ausführen oder db direkt von kdevelop aus aufrufen. Es funktionierte auch, "Host = localhost" zur Verbindungszeichenfolge hinzuzufügen.
ABER das eigentliche Problem war, dass Apache auf private tmp umgestellt hatte.
Lösung: Aktualisieren Sie /usr/lib/systemd/system/Apache2.service und ändern Sie PrivateTmp = true in PrivateTmp = false.
Ich arbeite an OpenSuse OS, aber ich vermute, dass auf dem Mac etwas Ähnliches passieren könnte.
Nach einer enormen Menge an Hin und Her kam es wirklich auf die Edelsteinversion pg
an, die ich benutzte. Auf Außenseitern würde pg
version 0.15.1
keine Verbindung zu Port 5432 herstellen, aber version 0.17.1
funktioniert einwandfrei - sehr seltsam.
Ich habe den gleichen Fehler bekommen. Es stellte sich heraus, dass Postgres überhaupt nicht lief (es läuft normalerweise immer im Hintergrund, aber aus welchem Grund auch immer, es war nicht heute).
In diesem Fall geben Sie einfach postgres
in die Befehlszeile Ihres Projektverzeichnisses ein
Ich hatte das gleiche Problem mit psql (PostgreSQL) 9.6.11
.
was hat bei mir funktioniert -
postmaster.pid - rm /usr/local/var/[email protected]/postmaster.pid
entfernen
postgres neu starten - brew services restart [email protected]
Ich bin auf dieses Problem gestoßen, nachdem ich versucht habe, eine Datenbank wiederherzustellen/zu löschen/zu erstellen, während andere Prozesse auf sie zugegriffen haben. MacOSX/Homebrew-Fix war:
Rails server
, Rails console
, guard
, etc ...brew info postgres
Wenn Sie Ihr System herunterfahren, ohne psql zu beenden, hätte postgres einige Dateien nicht entfernt.
Ich habe die Datei postmaster.pid nicht im Verzeichnis usr/local/var/postgres gefunden
Also habe ich folgendes gemacht:
brühdienste starten postgresql
Mit dem obigen Befehl können Sie postgres starten
Eine der Ursachen ist es, sicherzustellen, dass die Größe der Festplatte nicht voll ist. Führen Sie dazu den Befehl postmaster -D path of the postgres aus
Die Ursache
Lion wird mit einer bereits installierten Version von postgres ausgeliefert und verwendet diese Binärdateien standardmäßig. Im Allgemeinen können Sie dies umgehen, indem Sie den vollständigen Pfad zu den Postgres-Binärdateien von Homebrew verwenden. Es kann jedoch weiterhin Probleme mit anderen Programmen geben.
Die Lösung
curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh
Via
http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/
Wenn Sie während des Upgrades von Postgres (oder nach dem Upgrade) auf das Problem stoßen, befolgen Sie die hier beschriebenen Schritte, um Daten sicher zwischen Versionen zu übertragen. Dadurch wird das Problem behoben:
Aktualisieren Sie PostgreSQL 9.6.5 auf 10.0 mit Homebrew (macOS)
Ich habe den Bitnami-Stack verwendet und als Nicht-Root-Benutzer psql installiert. Bei der Verwendung von psql habe ich den genannten Fehler erhalten.
Es stellt sich heraus, dass es 2 Versionen von psql gibt
Möglicherweise möchten Sie den Alias des psql so ändern, dass er auf den Benutzer ohne Rootberechtigung verweist.
alias psql='/bitnami/postgresql/postgresql/bin/psql'
Das oben Genannte hat für mich bei der Umsetzung von psql -U postgres
funktioniert.
Nach der Installation des neuesten Patches für Postgres 9.6 wurden alle meine ausführbaren Dateien (postgres
, psql
, pg_dump
, pg_restore
usw.) gelöscht und ich musste sie erneut verknüpfen. Glücklicherweise kann Homebrew dies für Sie tun:
brew link --force postgresql # (or in my case, `[email protected]`)
Das Datenverzeichnis enthält eine alte postmaster.pid-Datei./Das Datenverzeichnis enthält eine nicht lesbare postmaster.pid-Datei. PostgreSQL legt eine Datei mit dem Namen postmaster.pid im Datenverzeichnis ab, um die Prozess-ID des PostgreSQL-Serverprozesses zu speichern. Wenn PostgreSQL abstürzt, kann diese Datei eine alte PID enthalten, die PostgreSQL verwirrt. Sie können dieses Problem beheben, indem Sie die Datei postmaster.pid löschen. Sie müssen jedoch sicherstellen, dass PostgreSQL wirklich nicht ausgeführt wird. Öffnen Sie den Aktivitätsmonitor und vergewissern Sie sich, dass keine Prozesse mit dem Namen "postgres" oder "postmaster" vorhanden sind.
Wenn Sie die postmaster.pid-Datei löschen, während PostgreSQL ausgeführt wird, passieren schlimme Dinge.
Quelle: https://postgresapp.com/dokumentation/fehlersuche.html
Nur zwei Schritte zum Ausführen der Datenbank nach der Installation (Stellen Sie zuvor sicher, dass Sie als postgres
Benutzer angemeldet sind.)
Installierte-Verzeichnisse/bin/postmaster -D Installierte-Verzeichnisse/pgsql/data
Zum Beispiel:
[[email protected] bin]$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
Schritt 2: Führen Sie psql über den Pfad Installed aus (um zu überprüfen, wo Sie "#which postgres" installiert haben, um den Installationsort zu ermitteln)
[[email protected] bin]$ psql
Für uns mussten wir localhost im Befehl psql wie folgt definieren:
psql -h localhost -U postgres
Nicht sicher, warum -h
nicht standardmäßig localhost
... ist.