PostgreSQL-Fehler 'Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder kein solches Verzeichnis'

136

Wie bei einigen anderen wird dieser Fehler angezeigt, wenn ich rake db: migrate in meinem Projekt ausführe oder sogar die meisten Datenbankaufgaben für meine Ruby on Rails 3.2-Anwendungen ausprobiere .

PGError (Verbindung zum Server konnte nicht hergestellt werden: Keine solche Datei oder kein solches Verzeichnis. Läuft der Server lokal und akzeptiert Verbindungen auf dem Unix-Domain-Socket "/tmp/.s.PGSQL.5432"?

Ich habe PostgreSQL vor langer Zeit mit Homebrew installiert und nach einem versuchten Installationsversuch von MongoDB war meine PostgreSQL-Installation noch nie dieselbe. Ich verwende OS X 10.6 Snow Leopard.

Was ist falsch und wie kann ich besser verstehen, wie PostgreSQL auf meinem Mac eingerichtet ist und eingerichtet werden sollte?

Bisher (glaube ich) sagt mir das, dass PostgreSQL nicht läuft (?).

ps -aef|grep postgres                                                                                                   (ruby-1.9.2-p320@jct-ana) (develop) 
  501 17604 11329   0   0:00.00 ttys001    0:00.00 grep postgres

Aber sagt mir das, dass PostgreSQL läuft?

 launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist                                                        (ruby-1.9.2-p136) 
homebrew.mxcl.postgresql: Already loaded

Wie behebe ich das? was sehe ich nicht

PS: ~/Library/LaunchAgentsEnthält zwei PostgreSQL .plist-Dateien. Ich bin mir nicht sicher, ob das relevant ist.

org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist

Ich habe Folgendes versucht und ein Ergebnis wie unten erhalten.

$ psql -p 5432 -h localhost

psql: could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (fe80::1) and accepting
    TCP/IP connections on port 5432?

Ich habe seitdem gelesen, dass dies geschieht, weil OS X eine eigene Version von PostgreSQL installiert und Homebrew eine andere Version an einem anderen Ort installiert und die PostgreSQL-Befehle im Verzeichnis / tmp / suchen. Sie müssen mehr nach Stack Overflow suchen, aber im Grunde genommen verknüpfen Sie PostgreSQL, damit alles, was in diesem tmp-Pfad sucht, tatsächlich den tatsächlichen Pfad findet, wenn dies sinnvoll ist.

Dies ist der Link, über den ich ein paar weitere Dinge zum Ausprobieren gefunden habe, insbesondere den oben beschriebenen Symlink. Mac OSX Lion Postgres akzeptiert keine Verbindungen unter /tmp/.s.PGSQL.5432 . Ich wünschte immer noch, jemand würde eine anständige Erklärung der Konzepte für die Installation von PostgreSQL unter OS X zusammenstellen und erklären, warum das alles so schwierig ist.

Neueste Erkenntnisse zur Fehlerbehebung:

$ which psql // This tells you which PostgreSQL you are using when you run $ psql. 

Dann renne:

$ echo $PATH

Der Schlüssel zu berücksichtigen ist:

Stellen Sie sicher, dass der Pfadeintrag für die Kopie von PostgreSQL, die Sie ausführen möchten, VOR dem Pfad zu PostgreSQL des OS X-Systems KOMMT.

Dies ist eine Kernanforderung, die entscheidet, welches PostgreSQL ausgeführt wird, und was mir gesagt wurde, führt zu den meisten dieser Probleme.

Entwickeln
quelle
Haben Sie jemals eine Lösung dafür gefunden? Ich sehe, du hast keinen markiert. Nichts davon hilft mir auch.
Andras Gyomrey
Es ist immer noch meistens Vodoo und seltsame Inkarnationen, um es zum Laufen zu bringen. Ich habe gerade [Bearbeiten 2] oben mit einem Link mit einigen weiteren Vorschlägen hinzugefügt und erklärt, wie der Symlink gemäß meinen Bearbeitungskommentaren erstellt wird. Der Symlink hat am Ende für mich funktioniert, aber ich glaube, ich habe dort auch Postgres und Homebrew deinstalliert und neu installiert, so dass es schwer ist, genau zu wissen, was den Unterschied ausmacht. Viel Glück. Melden Sie sich zurück, wenn Sie etwas Neues entdecken. Mit 15.000 Ansichten zu dieser Frage ist es etwas, das vielen Menschen Schmerzen bereitet!
Entwickeln Sie den
@AndrasGyomrey Ich bin gerade von RailsCamp15 in Australien zurückgekommen und die Leute sagten, ein Schlüssel sei, Ihre Pfaddatei richtig zu machen. Ich habe sie in Edit 3 oben bearbeitet, um dies zu erklären.
Entwickeln Sie sich
Denken Sie daran, dass launchctl, das etwas als geladen meldet, NICHT unbedingt bedeutet, dass es betriebsbereit ist. Sie sollten sich alternativ auch bigsql.com ansehen . funktioniert auf Mac und hat eine gute Management-Benutzeroberfläche.
Jim Nasby

Antworten:

102

Überprüfen Sie, ob sich wahrscheinlich keine postmaster.pid in Ihrem postgres-Verzeichnis befindet /usr/local/var/postgres/

Entfernen Sie diese und starten Sie den Server.

Check - https://github.com/mperham/lunchy ist ein großartiger Wrapper für launchctl.

Hass
quelle
3
Das hat bei mir funktioniert. Ich habe gerade Yosemite frisch installiert und Postgres von Homebrew geladen. Hat beim ersten Mal einwandfrei funktioniert, hatte aber dieses Problem nach einem Neustart. Können Sie erklären, warum dies funktioniert hat?
Dan Williams
2
hat für mich gearbeitet, aber für Neulinge kann jemand erklären, warum und wie sicher das ist
Alexander Mills
58

" Postgres.app " ist eine bessere Lösung, wenn Sie unter OS X arbeiten


Hier ist das Update:

  1. Stoppen Sie die Datenbank
  2. cd /var
  3. rm -r pgsql_socket
  4. ln -s /tmp pgsql_socket
  5. chown _postgres:_postgres pgsql_socket
  6. Starten Sie PostgreSQL neu (nicht Ihren Computer)

Weitere Informationen finden Sie unter " postgresql 9.0.3. On Lion Dev Preview 1 ".

josephmisiti
quelle
2
Fehler zurück für mich und dieses Update hat nicht geholfen. Ich habe das Gefühl, ich stoße in einem dunklen Raum herum, um zu verstehen, was tatsächlich vor sich geht, und um selbst eine Lösung zu finden. Könnten Sie erklären, wie ich dieses Problem diagnostizieren und beheben kann?
Entwickeln Sie sich
Funktioniert bei mir. Fühlt sich ein bisschen komisch an, /tmpum _postgres zu chown , aber hey :)
wrdevos
postgresapp funktioniert, aber warum kann ich meinen Server nicht im Terminal starten? Nachdem ich diese App beendet habe, kommt das Problem wie erwartet zurück.
Hakamami
Dies hat bei mir funktioniert, aber beachten Sie, dass Sie root sein oder sudo verwenden müssen, um # 2 - 4 auszuführen. Bitte klären Sie auch Schritt # 5 - Sie müssen nur postgres neu starten, nicht den Computer.
mpelzsherman
2
Großbuchstaben geben keine bessere Antwort. Es ist immer noch vollkommen in Ordnung, Postgres über Homebrew (Dienste) zu installieren und auszuführen.
Drenmi
55

Bei mir funktioniert das

rm /usr/local/var/postgres/postmaster.pid
tsunllly
quelle
9
In meinem Fall musste ich nach dem Löschen der PID Postgresql mitpg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Obromios
4
Ich musste auch postgres neu starten, wenn es von Homebrew installiert wurde, können Sie es so machen:brew services restart postgresql
Santuxus
2
Ich bin in Docker Env No such file or directoryin meinem Fall
Sarz
2
rm: /usr/local/var/postgres/postmaster.pid: Keine solche Datei oder kein solches Verzeichnis
nourza
13

Dies hat bei mir für den von Ihnen erwähnten Fehler funktioniert. Machen Sie eines davon:

  1. Ändern Sie möglicherweise Ihren in der postgres.confDatei angegebenen Standardport , wenn Sie 5432während der Installation einen anderen als den Standardport verwendet haben .

  2. Ändern Sie die Portnummer in postgresql.confund starten Sie den DB-Server neu.

  3. Anstatt psqlden vollständigen Befehl einzugeben:

    psql -p 5432 -h localhost   
    • Servername und Port-Nr
solaimuruganv
quelle
1. Ich denke, meine Installation hätte den Standardeinstellungen entsprochen.
Entwickeln Sie sich
2. Ich könnte dies ändern. Welche Auswirkungen hat das Ändern des Ports?
Entwickeln Sie sich
3. Meine Ausgabe von 3 oben hinzugefügt.
Entwickeln Sie sich
Option 3 funktionierte mit einem benutzerdefinierten Port. Da ich mehrere pg-Server installiert habe (PostgreSQL 9.1, 9.2 und 9.3), musste ich auch auf die richtige psql verweisen.
Gpasse
11

Wenn Sie Homebrew ausführen, deinstallieren Sie Postgresql end pg gems: *

$ gem uninstall pg
$ brew uninstall postgresql

Laden Sie das folgende Skript herunter und führen Sie es aus, um die Berechtigung für / usr / local zu korrigieren: * https://gist.github.com/rpavlik/768518

$ ruby fix_homebrew.rb

Dann installieren Sie Postgres erneut und pg gem: *

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

So starten Sie postgresql beim Anmelden:

$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents 

Oder manuell starten.

Installieren Sie pg gem

$ gem install pg

Ich hoffe ich habe geholfen

Fabricio
quelle
Von brew info postgres:ARCHFLAGS="-arch x86_64" gem install pg
Wrdevos
1
würde dies nicht die Datensätze in der Datenbank löschen?
Kibaekr
initdb /usr/local/var/postgres -E utf8funktioniert. Vielen Dank.
Chris Jeon
8

Ich hatte dieses Problem, als ich Postgres auf 9.3.x aktualisiert habe. Die schnelle Lösung für mich bestand darin, ein Downgrade auf die Version 9.2.x durchzuführen, die ich zuvor hatte (es ist nicht erforderlich, eine neue zu installieren).

$ ls /usr/local/Cellar/postgresql/
9.2.4
9.3.2
$ brew switch postgresql 9.2.4
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
<open a new Terminal tab or window to reload>
$ psql

" Homebrew-spezifische Version der Formel installieren? " Bietet eine viel umfassendere Erklärung sowie alternative Möglichkeiten zur Behebung des Problems.

Silvenon
quelle
Vielen Dank für den Beitrag und die klaren Anweisungen, um Ihren Fix zu wiederholen. Dieser Link, den Sie sicher eingefügt haben, ist umfassend. Ich habe derzeit keine Probleme mit Postgres. Ich bin mir also nicht sicher, wie nützlich dies für andere ist, aber für alle anderen, wenn Sie dies nützlich finden, kommentieren Sie es bitte hier.
Entwickeln Sie
Ich finde es nützlich und relevant, wenn auch vielleicht nicht direkt. Er löste das Problem, indem er nur die Version wechselte und Brew verwendete, was ein ziemlich verbreitetes Tool ist, und wiederholte nur die Schritte im Kontext der Frage des OP.
wkhatch
7

Ich habe dies durch ein Upgrade von Postgres behoben.

brew update
brew upgrade

Dann musste ich auch die Datenbanken aktualisieren, um mit der neuen Hauptversion kompatibel zu sein, da ich von 10 auf 11 aktualisiert habe.

brew postgresql-upgrade-database

(Quelle https://github.com/facebook/react-native/issues/18760#issuecomment-410533581 )

Nelu
quelle
Ich habe diesen Fehler erhalten Fehler: Keine postgresql 9.3. * Version installiert!
Nourza
5

Bei vielen Problemen hier scheint es, dass die Leute bereits psql ausgeführt haben und entfernen mussten postmaster.pid. Ich hatte dieses Problem jedoch nicht, da ich Postgres noch nie richtig in meinem System installiert hatte.

Hier ist eine Lösung, die für mich in MAC OSX Yosemite funktioniert hat

  1. Ich ging zu http://postgresapp.com/ und lud die App herunter.
  2. Ich habe die App in das Verzeichnis Anwendung / verschoben
  3. Ich habe es zu $ ​​PATH hinzugefügt, indem ich es zu .bashrc oder .bash_profile oder .zshrc hinzugefügt habe: export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
  4. Ich habe die Postgres aus dem Anwendungsverzeichnis ausgeführt und den Befehl erneut ausgeführt, und es hat funktioniert.

Hoffe das hilft! Toodles!

Diese Antwort hat mir auch am meisten geholfen: https://stackoverflow.com/a/21503349/3173748

Superjisan
quelle
Zeigt dies nicht eher auf die Postgres-App als auf die Brauanlage? Das kann Sie von einigen hilfreichen Paketen abhalten (z. B. pgrouting, die Sie nicht für die Postgres-App installieren können, die mir endlosen Kummer bereitet hat, und hier bin ich jetzt)
allthesignals
4

Wenn Sie Folgendes ausführen: psql -p 5432 -h localhost verwendet nicht den Loopback-Treiber, sondern einen echten Socket. Daher müssen Sie postgres so konfigurieren, dass Socket-Verbindungen akzeptiert werden. Obwohl pgadmin und andere Clients möglicherweise funktionieren, wird psql dies nicht tun.

Sie müssen sowohl die Datei postgresql.conf als auch die Datei pg_hba.conf ändern, um die Verbindung über einen echten Socket zu ermöglichen. Dies ermöglicht auch die Verbindung von einer Remote-IP, weshalb diese standardmäßig deaktiviert ist.

Diese Dateien befinden sich im Datenverzeichnis, aber der tatsächliche Speicherort kann je nach Installation von postgres unterschiedlich sein. Führen Sie bei laufendem Postgres den folgenden Befehl aus:

ps -ef | grep postmaster

Diese beiden Dateien sind das Verzeichnis -D (möglicherweise / usr / local / pgsql / data).

Kommentieren Sie für die Datei postgresql.conf die listen_address aus und ändern Sie sie in:

listen_address = '*'

Fügen Sie für die pg_hba.conf die folgende Zeile hinzu:

host all all 0.0.0.0/0 md5
Oenpelli
quelle
2

Ich kenne Mac oder Homebrew nicht wirklich, aber ich kenne PostgreSQL sehr gut.

Sie möchten herausfinden, wo sich die Protokolle von PostgreSQL befinden und wie das Socket-Verzeichnis für PostgreSQL ist. Wenn Sie PG erstellen, lautet das Socket-Verzeichnis standardmäßig / tmp /. Wenn Sie dies beim Erstellen von PG und beim Starten von PG nicht geändert haben, sollte eine Socket-Datei in / tmp angezeigt werden, wenn Sie Folgendes tun: ls -al / tmp

Die Socket-Datei beginnt mit einem ".", Daher wird sie nicht mit dem '-a' bis ls angezeigt.

Wenn Sie dort keinen Socket sehen und nichts von ps awux | sehen grep postgres, dann läuft PG wahrscheinlich nicht, oder vielleicht ist es das und es ist das von OSX installierte. Was möglicherweise passiert, ist, dass beim Abhören von Port 5432 auf localhost möglicherweise ein Konflikt auftritt. Verwenden Sie netstat -anp, um zu sehen, was, wenn überhaupt, 5432 abhört. Wenn ein Mac OSX PG diesen Port bereits abhört, kann dies der Fall sein das Problem sein.

Hoffentlich hilft das. Ich habe gehört, dass Homebrew die Dinge ein bisschen hässlich machen kann und viele Leute, mit denen ich gesprochen habe, ermutigen, stattdessen eine VM zu verwenden.

Stephen Frost
quelle
Vielen Dank, dass Sie dazu beigetragen haben. Wenn es Ihnen hilft, ein bisschen mehr Hintergrundwissen zu erhalten, führt Homebrew dieses Skript einfach aus, wenn Sie postgres installieren. github.com/Homebrew/homebrew-core/blob/master/Formula/… Ich hoffe, Sie geben einen Blick darauf und teilen möglicherweise weitere Erkenntnisse aus dem, was Sie finden. Was die Leute meiner Meinung nach brauchen, ist eine einfachere Möglichkeit zu debuggen, warum sie diesen Fehler erhalten, damit sie wissen, welche Maßnahmen sie ergreifen müssen.
Entwickeln Sie sich
Basierend auf dem, was ich über dieses Skript verstehen kann, gibt es ein "postgres.log" in einem "var" -Verzeichnis, möglicherweise unter HOMEBREW_PREFIX. Diese Protokolldatei enthält Informationen zu PG, das versucht zu starten (auch wenn es aus irgendeinem Grund nicht gestartet werden konnte). Hier ist eine Beispielnachricht, die zeigt, dass PG aufgrund eines anderen Prozesses, der Port 5432 abhört, nicht gestartet werden kann:
Stephen Frost
2016-12-19 09: 11: 59.582 EST [20669] LOG: IPv4-Socket konnte nicht gebunden werden: Adresse wird bereits verwendet 2016-12-19 09: 11: 59.582 EST [20669] TIPP: Läuft bereits ein anderer Postmaster auf Port 5432 ? Wenn nicht, warten Sie einige Sekunden und versuchen Sie es erneut. 2016-12-19 09: 11: 59.582 EST [20669] WARNUNG: Listen-Socket für "localhost" konnte nicht erstellt werden. 2016-12-19 09: 11: 59.582 EST [20669] FATAL: TCP / IP-Sockets 2016 konnten nicht erstellt werden -12-19 09: 11: 59.582 EST [20669] LOG: Datenbanksystem wird heruntergefahren
Stephen Frost
Außerdem sieht es so aus, als würde das Skript das Standard-Socket-Verzeichnis nicht ändern, daher sollte dies / tmp / sein. Sie können im PG-Datenverzeichnis (das anscheinend {HOMEBREW_PREFIX} / var / postgres ist) nach der Datei postgresql.conf suchen und nach "unix_socket_directories" suchen. Es ist standardmäßig auskommentiert, hat aber die Standardeinstellung, zB:
Stephen Frost
#unix_socket_directories = '/ tmp' # durch Kommas getrennte Liste von Verzeichnissen
Stephen Frost
2

Ich habe diesen Fehler festgestellt, als ich unter Mac 10.15.5 mit Homebrew ausgeführt wurde.

Es gibt eine Datei namens postmaster.pid, die beim Beenden von postresql automatisch gelöscht werden soll.

Wenn dies nicht der Fall ist, gehen Sie wie folgt vor

  • Brew Services stoppen postgresql <--- Fehler beim Beenden, bevor rm db beschädigen könnte
  • sudo rm /usr/local/var/postgres/postmaster.pid
RobKohr
quelle
1

Die Ursache

Lion wird mit einer bereits installierten Version von Postgres geliefert und verwendet diese Binärdateien standardmäßig. Im Allgemeinen können Sie dies umgehen, indem Sie den vollständigen Pfad zu den Homebrew-Postgres-Binärdateien verwenden. Möglicherweise treten jedoch weiterhin Probleme mit anderen Programmen auf.

Die Lösung

locken http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | Sch

Über

http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/

SocoM
quelle
1

Ein Grund für diesen Fehler ist, dass Ihre lokale Postgres-Datenbank beim Neustart Ihres Computers heruntergefahren wird. Geben Sie in einem neuen Terminalfenster einfach Folgendes ein:

$psql -h localhost 

um den Server neu zu starten.

Pstrazzulla
quelle
1

Hallo Welt :)
Der beste, aber seltsame Weg für mich war, die nächsten Dinge zu tun.

1) Laden Sie postgres93.app oder eine andere Version herunter . Fügen Sie diese App in den Ordner / Applications / ein.

2) Fügen Sie der Datei eine Zeile (Befehl) hinzu.bash_profile (die sich in meinem ) hinzu:

export PATH = / Applications / Postgres93.app / Contents / MacOS / bin /: $ PATH
Es ist ein Weg psqlvon Postgres93.app. Die Zeile (Befehl) wird bei jedem Start der Konsole ausgeführt.

3) Starten Sie Postgres93.appvom /Applications/Ordner. Es startet einen lokalen Server (Port ist "5432" und Host ist "localhost").

4) Nach all diesen Manipulationen war ich froh, $ createuser -SRDP user_nameund andere Befehle auszuführen und zu sehen, dass es funktionierte! Postgres93.appkann bei jedem Systemstart ausgeführt werden.

5) Auch wenn Sie Ihre Datenbanken grafisch anzeigen möchten, sollten Sie installieren PG Commander.app. Es ist eine gute Möglichkeit, Ihre Postgres-Datenbank als hübsche Datentabellen zu betrachten

Natürlich ist es nur für lokale Server hilfreich. Ich würde mich freuen, wenn diese Anleitung anderen hilft, die mit diesem Problem konfrontiert sind.

Crazzyaka
quelle
1

Ich hatte PostgreSQL 9.3 und bekam den gleichen Fehler,

Verbindung zum Server konnte nicht hergestellt werden: Verbindung abgelehnt Läuft der Server auf dem Host "localhost" (127.0.0.1) und akzeptiert TCP / IP-Verbindungen auf Port 5432?

Ich habe das behoben mit:

chmod 777  /var/lib/pgsql/9.3/data/pg_hba.conf 
service postgresql-9.3 restart

Für mich geht das.

Mahesh Shitole
quelle
Diese Datei existiert nicht für mich
allthesignals
1

Für das, was es wert ist, habe ich den gleichen Fehler festgestellt, als ich einen Tippfehler ( md4anstelle von md5) in meiner pg_hba.confDatei hatte ( /etc/postgresql/9.5/main/pg_hba.conf)

Wenn Sie wie ich hierher gekommen sind, überprüfen Sie diese Datei einmal, um sicherzustellen, dass dort nichts Lächerliches ist.

Zach Lamberty
quelle
Wo ist die pg_hba.confDatei?
Bubakazouba
1
/etc/postgresql/{postgres_version}/main/pg_hba.conf
Aidan Melen
0

Beim lokalen Ausführen von PostgreSQL können verschiedene Probleme auftreten. Ich würde empfehlen, alle installierten Postgres-Versionen zu reinigen und neu zu starten. Sobald Sie es installiert haben, ist es sehr einfach, Ihre Datenbank neu zu erstellen, wenn Sie Ihr Rails-Projekt auf dem neuesten Stand habendb/schema.rb

So installiere ich PostgreSQL normalerweise auf einem Mac . Wenn Sie Ihre Datenbank lokal unter dem Root-Benutzer ausführen, möchten Sie möglicherweise den letzten Schritt weglassen, mit dem ein todoBenutzer erstellt wird

Alex Tamoykin
quelle
0

Einer der Gründe könnte das sein

unix_socket_directories in der Datei postgresql.conf wird nicht mit dem gesuchten Verzeichnis aufgelistet.

Im Fragenbeispiel wird nach Verzeichnis / tmp gesucht, das in der Datei postgresql.conf angegeben werden muss

etwas wie das:

unix_socket_directories = '/var/run/postgresql,/tmp'    # comma-separated list of directories

Diese Lösung hat bei mir funktioniert.

Kiran K Telukunta
quelle
0

Wenn Sie unter MacOS arbeiten und Homebrew verwenden, fand ich diese Antwort äußerst hilfreich:

https://stackoverflow.com/a/27708774/4062901

Für mich lief mein Server, aber aufgrund eines Upgrades hatte ich Probleme beim Verbinden (Hinweis: Ich verwende Brühdienste). Wenn Postgres ausgeführt wird, versuchen Sie zu cat /usr/local/var/postgres/server.logsehen, was in den Protokollen steht. Mein Fehler war eine Migration, kein Verbindungsproblem.

Auch nach der von ihnen vorgeschlagenen manuellen Migration (die aber funktioniert) stellte ich fest, dass für meinen Benutzer keine Tabelle mehr vorhanden war. Versuchen Sie diesen Befehl, um Folgendes zu beheben: createdb(Beantwortet über psql: FATAL: Datenbank "<Benutzer>" existiert nicht )

Rickrizzo
quelle
0

Starten Sie Postgres einfach neu, sobald ein Fehler auftritt, brew services restart postgresqlund versuchen Sie es erneut

Kanke
quelle
0

Für mich hat der Befehl rm /usr/local/var/postgres/postmaster.pidnicht funktioniert, weil ich eine bestimmte Version von postgresql mit Homebrew installiert habe.

Der richtige Befehl ist rm /usr/local/var/postgres@10/postmaster.pid.

dann brew services restart postgresql@10.

ZinkLu
quelle
-5

Es ist sehr einfach. Fügen Sie nur den Host in Ihrer Datei database.yaml hinzu.

Ricardo - Nextv
quelle
Host: 127.0.0.1 oder Host: localhost zum Beispiel.
Ricardo - Nextv
Jeder liebt eine einfache Lösung. Aber wie funktioniert das? Wie ich oben in meinen Kommentaren gesagt habe, hat mich die Suche nach diesem Weg auf viele komplexe Wege geführt. Können Sie etwas näher darauf eingehen und uns etwas mehr Hintergrundwissen darüber geben, was das Problem Ihrer Meinung nach wirklich ist und wie diese einfache Änderung das Problem angeht? Vielen Dank für Ihren Beitrag! :)
Evolve
Der Unterschied besteht darin, dass bei einer IP-Verbindung keine Bedenken bestehen, wo sich die Socket-Datei befindet. Stattdessen sorgen Sie sich um die IP-Adresse.
Jim Nasby