ruby-on-rails - rails - ruby mac mojave




Reparieren von Postgresql nach dem Upgrade auf OSX 10.7 Lion (10)

Eine andere mögliche Lösung, die für mich funktionierte, ist das Zurücksetzen der Postmaster-Datei durch Löschen. Einfach ausführen:

rm /usr/local/var/postgres/postmaster.pid 

Es lohnt sich, das Protokoll auf Fehler zu überprüfen, die Sie hier finden:

/usr/local/var/postgres/server.log

Die Fehlermeldung, die ich hatte, war:

FATAL:  lock file "postmaster.pid" already exists
HINT:  Is another postmaster (PID 161) running in data directory 
"/usr/local/var/postgres"?

Alles hat danach super geklappt.

Ich habe vor kurzem ein Upgrade auf OSX 10.7 durchgeführt. Zu diesem Zeitpunkt wurde meine Rails-Installation komplett durchgebrannt, als ich versuchte, eine Verbindung zum psql-Server herzustellen. Wenn ich es von der Kommandozeile aus benutze

psql -U postgres

Es funktioniert völlig gut, aber wenn ich versuche, den Rails Server oder die Konsole mit dem gleichen Benutzernamen und Passwort zu starten, bekomme ich diesen Fehler

...activerecord-3.0.9/lib/active_record/connection_adapters/postgresql_adapter.rb:950:in `initialize': could not connect to server: Permission denied (PGError) 
Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Jede Idee, was passieren könnte, wäre super hilfreich! Vielen Dank!


Es ist ein PATH-Problem. Mac OSX Lion enthält nun Postgresql im System. Wenn Sie eine which psql tun which psql Sie wahrscheinlich usr/bin/psql anstelle von usr/local/bin/psql was HomeBrews korrektes ist. Wenn Sie brew doctor laufen lassen, sollten Sie eine Nachricht erhalten, die besagt, dass Sie usr/local/bin zum Kopf Ihrer PATH env Variable hinzufügen müssen.

Bearbeiten Sie Ihr .bash_profile oder .profile oder die von Ihnen verwendete Shell und fügen Sie Folgendes hinzu: export PATH=/usr/local/bin:$PATH

Als erster Export für den PATH entweder beenden Sie Shell-Sitzung oder Quelldatei mit source ~/.bash_profile und es sollte jetzt wieder OK sein.


Für diejenigen, die direkt vom offiziellen Installationsprogramm installiert wurden, funktioniert das Hinzufügen des Hosts zum Befehl ohne Pfadänderungen:

psql -h localhost -U postgres

Ich bin auch darauf gestoßen, aber ich habe Postgres selbst installiert (nicht mit Homebrew). Wenn das der Fall ist, müssen Sie den alten Pfad zu psql finden (der / usr / local / bin sein kann, aber für mich war / usr / local / pgsql / bin) und diesen dem $ PATH voranstellen.

(vorher) which psql => / usr / bin / psql

(fix) export PATH = / usr / local / psql / bin: $ PATH

(nach) `welches psql '=> / usr / local / psql / bin

John Wangs Vorschlag, source ~/.bash_rc , fügen Sie hinzu, dass Ihr bash_rc golden ist.


Ich bin nicht zufrieden mit den meisten Antworten, da sie entweder OS-benutzerspezifisch sind oder Postgres neu zuordnen, um TCP anstelle von Domain-Sockets zu verwenden, wie von @pilif gezeigt. Ich habe eine andere Lösung gesehen, bei der die Standardpfade auf Systemebene neu geordnet werden, um den Brew-Pfad vor einem Core-Systempfad zu überprüfen. Dies scheint jedoch gefährlich zu sein, da es alle anderen Anwendungsnamen-Kollisionen wie diesen beeinträchtigen könnte.

Diese Seite beschreibt eine Lösung, die mein Kollege gefunden hat. Es kommt darauf an, ein einzelnes Shell-Skript auszuführen

  1. Sichern Sie die Postgres 8.4-Dateien in einem separaten Verzeichnis
  2. symlink die Brew Installation von Postgres an Ort und Stelle

Dies kommt mit dem Vorbehalt, dass das System standardmäßig Postgres ist, was auch immer brauen installiert hat, so dass Sie eine Entscheidung treffen müssen, ob das für Sie richtig ist. Ich sehe mich nicht Postgres 8.4 speziell über 9.x, aber YMMV


Ich hatte das gleiche Problem und hatte Probleme, die Lösung von John Wang funktionieren zu lassen. Wie Darren bemerkte, gibt es ein Problem mit dem PG-Juwel. Um es funktionieren zu lassen, musste ich:

gem uninstall pg

Dann neu installieren.

Was hat es funktioniert.


In meinem Fall wurde der Server wegen falscher Shared Memory-Einstellungen nicht gestartet. Zuerst war ich verwirrt, weil mehrere Postgres-Prozesse ausgeführt wurden, aber das waren Standard-Systemprozesse. Suchen Sie nach postmaster Prozessen!

Ich musste lediglich die Shared Memory-Einstellungen ändern . Das Herumfliegen mit den Pfadeinstellungen war in meinem Fall nicht nötig.


Ist das für Homebrew? Ports scheint es zu sagen:

/opt/local/lib/postgresql91 

Stellen Sie also sicher, dass Sie exportieren

PATH=/opt/local/lib/postgresql91/bin:$PATH

Mac-Ports Problem: https://trac.macports.org/ticket/30125


Mein PostgreSQL ist in / Library / PostgreSQL installiert, so dass / usr / var stuff für mich nicht funktionierte.

Es scheint, dass Woz korrekt ist, denn jedes Mal, wenn ich den Deckel meines Macbook Pro schließe, stürzt es ab ... Hier ist, was nach dem Absturz für mich funktionierte:

sudo su postgres -c "/Library/PostgreSQL/9.2/bin/pg_ctl -m fast -D /Library/PostgreSQL/9.2/data restart"

Wenn Sie eine dauerhafte Änderung in Ihrem $ PATH möchten, versuchen Sie Folgendes :

defaults write $HOME/.MacOSX/environment PATH "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"

Dies wird Ihre ~/.MacOSX/environment.plist umschreiben.







osx-lion