Jedes Mal, wenn ich meinen Rails 4.0-Server betreibe, erhalte ich diese Ausgabe.
Started GET "/" for 127.0.0.1 at 2013-11-06 23:56:36 -0500
PG::ConnectionBad - 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" (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" (fe80::1) and accepting
TCP/IP connections on port 5432?
:
activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `connect'
activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:542:in `initialize'
activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `block in checkout'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/Ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection'
activerecord (4.0.0) lib/active_record/connection_handling.rb:79:in `retrieve_connection'
activerecord (4.0.0) lib/active_record/connection_handling.rb:53:in `connection'
activerecord (4.0.0) lib/active_record/migration.rb:792:in `current_version'
activerecord (4.0.0) lib/active_record/migration.rb:800:in `needs_migration?'
activerecord (4.0.0) lib/active_record/migration.rb:379:in `check_pending!'
activerecord (4.0.0) lib/active_record/migration.rb:366:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__1613334440513032208__call__callbacks'
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
better_errors (0.9.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
better_errors (0.9.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
better_errors (0.9.0) lib/better_errors/middleware.rb:56:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.0.0) lib/Rails/rack/logger.rb:38:in `call_app'
railties (4.0.0) lib/Rails/rack/logger.rb:21:in `block in call'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
railties (4.0.0) lib/Rails/rack/logger.rb:21:in `call'
quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
rack (1.5.2) lib/rack/runtime.rb:17:in `call'
activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
rack (1.5.2) lib/rack/lock.rb:17:in `call'
actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
railties (4.0.0) lib/Rails/engine.rb:511:in `call'
railties (4.0.0) lib/Rails/application.rb:97:in `call'
rack (1.5.2) lib/rack/content_length.rb:14:in `call'
thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'
thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'
thin (1.5.1) lib/thin/connection.rb:54:in `process'
thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'
eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
thin (1.5.1) lib/thin/backends/base.rb:63:in `start'
thin (1.5.1) lib/thin/server.rb:159:in `start'
rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'
rack (1.5.2) lib/rack/server.rb:264:in `start'
railties (4.0.0) lib/Rails/commands/server.rb:84:in `start'
railties (4.0.0) lib/Rails/commands.rb:78:in `block in <top (required)>'
railties (4.0.0) lib/Rails/commands.rb:73:in `<top (required)>'
bin/Rails:4:in `<main>'
Ich verwende Mavericks OS X 10.9, daher weiß ich nicht, ob dies das Problem ist. Ich habe alles versucht, was ich konnte, aber nichts scheint zu funktionieren. Ich habe jetzt sowohl postgres als auch den pg gem mehrmals deinstalliert und installiert.
Dies ist meine database.yml-Datei
development:
adapter: postgresql
encoding: unicode
database: metals-directory_development
pool: 5
username:
password:
template: template0
Host: localhost
port: 5432
test: &test
adapter: postgresql
encoding: unicode
database: metals-directory_test
pool: 5
username:
password:
template: template0
Host: localhost
port: 5432
staging:
adapter: postgresql
encoding: unicode
database: metals-directory_production
pool: 5
username:
password:
template: template0
Host: localhost
production:
adapter: postgresql
encoding: unicode
database: metals-directory_production
pool: 5
username:
password:
template: template0
Host: localhost
cucumber:
<<: *test
Kann mir jemand helfen?
Es könnte so einfach sein wie eine veraltete PID-Datei . Es könnte im Hintergrund fehlschlagen, da Ihr Computer den Herunterfahrenvorgang nicht vollständig abgeschlossen hat. Dies bedeutet, dass postgres die DateiPID(Prozess-ID) nicht gelöscht hat.
Die PID-Datei wird von Postgres verwendet, um sicherzustellen, dass jeweils nur eine Instanz des Servers ausgeführt wird. Wenn es erneut startet, schlägt es fehl, weil bereits einePID- Datei vorhanden ist, die postgres mitteilt, dass eine andere Instanz des Servers gestartet wurde (obwohl er nicht läuft, ist es einfach nicht gegangen kann nicht heruntergefahren und die PID gelöscht werden).
/usr/local/var/postgres/
, bei anderen Systemen kann es /usr/var/postgres/
sein.server.log
), um sicherzustellen, dass dies das Problem ist. In den letzten Zeilen sehen Sie: FATAL: Die Sperrdatei "postmaster.pid" existiert bereits
TIPP: Läuft ein anderer Postmaster (PID 347) im Datenverzeichnis "/ usr/local/var/postgres"?
rm postmaster.pid
Starten Sie Ihren Server neu. Auf einem Mac mit launchctl (mit Homebrew) starten die folgenden Befehle den Server neu.
launchctl unload homebrew.mxcl.postgresql.plist
launchctl load -w homebrew.mxcl.postgresql.plist
ODER bei neueren Versionen von Brew
brew services restart postgresql
Nach langem Suchen und Analysieren habe ich eine Lösung gefunden, wenn Sie ubuntu verwenden, schreiben Sie einfach diesen Befehl in Ihr Terminal und drücken Sie die Eingabetaste
Sudo service postgresql restart
Dadurch wird Ihr PostgreSQL-System neu gestartet. Ich hoffe, das würde für Sie funktionieren.
Ich habe es geschafft, das Problem zu lösen, indem ich der Antwort von Chris Slade folgte, aber um den Server neu zu starten, musste ich die folgenden Befehle verwenden:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
dass ich hier gefunden habe (pjammers Antwort unten)
Haben Sie Postgresql in Ihrem System installiert? Wenn nicht, dann sehen Sie postgresql installieren. Nachdem Sie postgresql erfolgreich in Ihr System integriert haben, können Sie so etwas in Ihr Systemendgerät eingeben:
which psql
#=> /usr/bin/psql
Danach müssen Sie einen Benutzer und eine Datenbank in postgresql wie folgt erstellen:
Sudo su - postgres
psql
Dann können Sie in Ihrem Terminal Folgendes sehen
postgres=#
Dort eingeben:
CREATE USER yourname WITH PASSWORD 'passwordhere';
CREATE DATABASE metals-directory_production WITH OWNER yourname;
GRANT ALL PRIVILEGES ON DATABASE metals-directory_production TO yourname;
Nachdem Sie dies getan haben, müssen Sie Ihren database.yml
korrigieren. Wahrscheinlich brauchst du so etwas:
development:
adapter: postgresql
encoding: unicode
database: metals-directory_development
pool: 5
username: yourname
password: passwordhere ### password you have specified within psql
Host: localhost
port: 5432 ### you can configure it in file postgresql.conf
Wenn Sie Probleme mit postgresql haben, sollten Sie die Datei pg_hba.conf überprüfen.
Um diese Art von Problemen mit Postgres zu beheben und mit Postgres unter Mac OSX
zu arbeiten, ist dies wahrscheinlich der BEST und der AM EINFACHSTEN Lösung, die ich bisher gefunden habe:
Einfach herunterladen, installieren und glücklich sein :)
Dieses Problem tritt auf, wenn Postgres nicht ordnungsgemäß heruntergefahren wird. So habe ich dieses Problem in drei einfachen Schritten gelöst.
Schritt 1: Wechseln Sie in Ihr Postgres-Verzeichnis
Mac-Benutzer finden dies in /usr/local/var/postgres
, andere können /usr/var/postgres/
betrachten.
Schritt 2: Entfernen Sie die .pid
-Datei, indem Sie diesen Befehl ausführen.
rm postmaster.pid
Schritt 3: Starten Sie Ihren Server neu
Mac-Benutzer
brew services restart postgresql
Linux Benutzer
Sudo service postgresql restart
Starten Sie schließlich Ihre App neu und Sie können loslegen.
Deinstallation pg:
gem uninstall pg
Deinstallieren Sie postgres:
brew uninstall postgres
Nuke der Postgres-Ordner, in dem sich ein paar veraltete Sachen befinden:
rm -rf /usr/local/var/postgres
Neustart (vielleicht unnötig)
Pg neu installieren:
brew install postgres
Mein Kommentar in der Antwort von Chris Slade beginnt auf die harte Tour. Jetzt nutze ich Braudienste, die mein Leben in vielerlei Hinsicht vereinfacht haben:
brew install services
Und fange pg damit an:
brew services start postgresql
Installieren Sie den Edelstein erneut:
gem install pg
Und bobsyouroncle.
Überprüfen Sie die Datei postgresql.conf (auf ubuntu
befindet sich in /etc/postgresql/X.X/main/postgresql.conf) und suchen Sie nach der Zeile, in der Folgendes angezeigt wird:
listen_addresses="localhost"
versuche es zu ändern:
listen_addresses="*"
es würde jede IP akzeptieren, überprüfen Sie als nächstes die Zeile mit der Angabe:
port=5432
und prüfen, ob es sich um den gleichen Port Ihrer database.yml handelt, verwenden Sie in meiner postgresql-9.2 standardmäßig 5433 statt 5432, vergessen Sie nicht Neustart the postgres server,
Viel Glück!
Wie von @Magne beschrieben, kann der Fehler PG::ConnectionBad - could not connect to server: Connection refused
nach einer major/minor-Version Aktualisierung (z. B. 9.5 -> 9.6
oder 9 -> 10
) von PostgreSQL angezeigt werden.
Ich habe diese Fehlermeldung erhalten, nachdem brew upgrade postgresql
nach der Veröffentlichung von PostgreSQL Version 9.6 ausgeführt wurde. Das Problem ist, dass für Haupt-/Nebenversions-Upgrades zusätzliche Schritte erforderlich sind, um das alte Datum auf die neue Version zu migrieren.
So überprüfen Sie, ob dies Ihr Problem ist
Sie können überprüfen, ob dies das Problem ist, indem Sie die neueste Version der PostgreSQL-Version für Brühreparaturen mit ...
$ brew info postgresql
/usr/local/Cellar/postgresql/9.5.4_1 (3,147 files, 35M)
Poured from bottle on 2016-10-14 at 13:33:28
/usr/local/Cellar/postgresql/9.6.1 (3,242 files, 36.4M) *
Poured from bottle on 2017-02-06 at 12:41:00
... und dann mit dem aktuellen PG_VERSION vergleichen
$ cat /usr/local/var/postgres/PG_VERSION
9.5
Wenn PG_VERSION kleiner ist als die neueste Brühformel und der Unterschied eine Haupt-/Nebenversionsänderung ist, ist dies wahrscheinlich Ihr Problem.
Wie zu beheben (d. H. Wie Sie die Daten aktualisieren)
Die folgenden Anweisungen beziehen sich auf ein Upgrade von 9.5 auf 9.6. Ändern Sie die Versionsnummern entsprechend Ihrem eigenen Upgrade.
Schritt 1. Stellen Sie sicher, dass PostgreSQL ausgeschaltet ist:
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, with Homebrew...
$ brew services stop postgresql
Schritt 2. Neue unberührte Datenbank erstellen:
$ initdb /usr/local/var/postgres9.6 -E utf8
Schritt 3. Überprüfen Sie, was die alte und die neue Binärversion sind:
$ ls /usr/local/Cellar/postgresql/
9.5.3 9.5.4 9.6.1
Beachten Sie, dass ich in diesem Beispiel von 9.5.4 binär auf 9.6.1 binär bin
Schritt 4. Migrieren Sie die aktuellen Daten mithilfe des Dienstprogramms pg_upgrade in die neue Datenbank.
$ pg_upgrade \
-d /usr/local/var/postgres \
-D /usr/local/var/postgres9.6 \
-b /usr/local/Cellar/postgresql/9.5.4/bin/ \
-B /usr/local/Cellar/postgresql/9.6.1/bin/ \
-v
-d
flag gibt das aktuelle Datenverzeichnis an-D
flag gibt das neue Datenverzeichnis an, das erstellt werden soll-b
gibt die alte Binärdatei an-B
gibt die neue Binärdatei an, auf die wir ein Upgrade durchführenSchritt 5. Verschieben Sie das alte Datenverzeichnis aus dem Weg
$ mv /usr/local/var/postgres /usr/local/var/postgres9.5
Schritt 6. Verschiebt das neu erstellte Datenverzeichnis dorthin, wo PostgreSQL erwartet
$ mv /usr/local/var/postgres9.6 /usr/local/var/postgres
Schritt 7. Starten Sie PostgreSQL erneut
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, if you're running a current version of Homebrew
$ brew services start postgresql
Schritt 8. Wenn Sie den pg-gem für Rails verwenden, sollten Sie ihn erneut deinstallieren, indem Sie ihn deinstallieren und erneut installieren. (Überspringen Sie diesen Schritt, wenn Sie den pg-gem nicht verwenden.)
$ gem uninstall pg
$ gem install pg
Schritt 9. (optional) Nachdem Sie sich selbst davon überzeugt haben, dass alles in Ordnung ist, können Sie mit dem folgenden Befehl etwas Speicherplatz gewinnen:
brew cleanup postgresql
... und wenn Sie sich wirklich mutig fühlen, können Sie das alte PostgreSQL-Datenverzeichnis mit dem folgenden Befehl löschen
rm -rf /usr/local/var/postgres9.5/
(Diese Antwort basiert auf einem ausgezeichneten Blogbeitrag https://keita.blog/2016/01/09/homebrew-and-postgresql-9-5/ mit einigen Ergänzungen)}
Wie oben vorgeschlagen, habe ich gerade die Postgres App auf meinem Mac geöffnet, auf Öffnen Psql
geklickt, das psql
-Fenster geschlossen, meinen Rails-Server in meinem Terminal neu gestartet, und es funktionierte wieder ohne Fehler.
Vertrauen Sie dem Elefanten: http://postgresapp.com/
Das hat mir wirklich geholfen.
$ cd /usr/local/var/postgres/
$ rm postmaster.pid
Referenz: http://alumni.lewagon.org/questions/60
Wenn Sie dieses Problem nach einem brew upgrade
, der Postgres auf eine neue Hauptversion aktualisiert hat (z. B. 9.3.0
auf 9.4.0
oder höher), gefunden haben, gehen Sie folgendermaßen vor:
@Dmitrygusevs Fix von https://github.com/Homebrew/homebrew/issues/35240
Der folgende offizielle Migrationsleitfaden [Postgresql] half:
brew switch postgres 9.3.5 # presuming you already installed 9.4.1 pg_dumpall > outputfile launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist mv /usr/local/var/postgres /usr/local/var/postgres.old brew switch postgres 9.4.1 initdb -D /usr/local/var/postgres psql -d postgres -f outputfile
Das ist alles. Prüfen Sie, ob der Import gut gelaufen ist, und löschen Sie die Backups:
rm outputfile rm -Rf /usr/local/var/postgres.old
Das Problem hierbei ist, dass bei einem größeren Versionsupgrade von Postgres die Datenbank neu erstellt/migriert werden muss. Und möglicherweise chown
Verzeichnisse oder rufen Sie initdb
manuell auf.
Siehe auch: Wie kann PostgreSQL von Version 9.5 auf Version 9.6 aktualisiert werden, ohne Daten zu verlieren?
Einige andere Tipps, die nützlich sein könnten, falls Sie Homebrew nicht verwenden:
So stoppen Sie den PG-Server manuell:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log stop
So starten Sie den PG-Server manuell:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
fügen Sie Host: localhost
in database.yml
-Datei ein und führen Sie diesen Befehl aus
rake db:create db:migrate
Suchen Sie Ihre Postgres-Datei in /usr/local/var/postgres/
oder /usr/var/postgres/
und löschen Sie dann die postmaster.pid
-Datei in diesem Ordner.
Ich hatte das gleiche Problem, nachdem ich meinen Mac auf Osx Movaje aktualisiert hatte.
ich habe diese Lösung gefunden:
Versuchen Sie zuerst die folgende Befehlszeile in Ihrem Terminal:
brew services restart postgresql
Wenn sich nichts ändert:
ps aux | grep postgres
Wenn sich immer noch nichts ändert:
ls -ls | grep post
Als letzten Befehl wurde die Postgres-Sperrdatei durch Ausführen von root entfernt:
rm /usr/local/var/postgres/postmaster.pid
und dann :
brew services restart postgresql
Von berziiii: https://github.com/ga-wdi-boston/capstone-project/issues/325
Hoffe das wird helfen :)
Grüße !!
Ich führe einfach diesen Befehl Sudo service postgresql restart
Aus und alles hat wieder funktioniert.
Ich hatte heute Abend gerade dieses Problem, als ich an einer Rails -Anwendung arbeitete, an der ich schon eine Weile gearbeitet habe. Mein Problem bestand einfach darin, dass mein postgresql-Server lief nicht.
Ich ging zum oberen Bildschirmrand (ich bin auf einem Mac) und klickte auf das kleine Elefantensymbol und dann auf "Start".
Schaltet unseren Server nicht ein.
Hoffentlich bietet dies eine einfache Lösung für jemanden.
Sie haben Ihren Computer wahrscheinlich neu gestartet und vergessen, die Postgres-App zu starten.
Ich weiß, dass dies zu spät ist, aber vielleicht jemandem helfen könnte ... Es stellt sich heraus, dass ich zwei Versionen von Postgres 9.1 und 9.5 habe. Ich deinstallierte 9.1 und 9.5 und installierte 9.5 erneut und es funktionierte für mich.
Mac-Benutzer mit der Postgres-App möchten möglicherweise die Anwendung öffnen (Spotlight-Suche nach Postgres oder das Elefanten-Symbol in Ihrer Menüleiste). Darin sehen Sie möglicherweise ein rotes X mit der Meldung: "Alte Postmaster.pid-Datei". Leider wird bei einer Spotlight-Suche der Speicherort dieser Datei nicht angezeigt. Klicken Sie auf "Servereinstellungen ..." und klicken Sie im angezeigten Dialogfeld auf die Schaltfläche "Anzeigen", um das Datenverzeichnis zu öffnen. Navigiere in einem Ordner (für mich war "var-10") und lösche die postmaster.pid
-Datei.
Gehen Sie zurück zur Postgres-App und klicken Sie auf die Schaltfläche Start. Dieses rote X sollte sich mit der Meldung "Running" in ein grünes Häkchen verwandeln. Jetzt sollten Sie Rails-Befehle wie Rails server
im Terminal erfolgreich ausführen können.
Mein Problem war in meiner Datei application.yml . Meine Datenbank url
auf heroku
verwendete Port 5342 nicht. Überprüfen Sie Ihre heroku
config var DATABASE_URL
. Stellen Sie sicher, dass die Übereinstimmungen genau mit in Ihrer application.yml für die zutreffende Datenbank übereinstimmt.
Ich hatte das gleiche Problem. Ich überprüfe die letzte Zeile der PostgreSQL
-Protokolldateien in /var/log/postgresql
. In der Datei /etc/postgresql/9.5/main/postgresql.conf befand sich ein unbekannter Konfigurationsparameter. Das Kommentieren der Fehlerzeile in postgresql.conf
hat mein Problem behoben.
Es war definitiv die Antwort von @Chris Slade, die mir geholfen hat.
Ich habe ein kleines Skript geschrieben, um die verbleibenden Prozesse zu beenden, falls dies nützlich ist:
kill_postgres() {
if [[ $* -eq "" ]]; then
echo "Usage: 'kill_postgres <db_name>' to kill remaining instances (Eg. 'kill_postgres my_app_development')"
else
gksudo echo "Granted Sudo"
pids="$(ps xa | grep postgres | grep $* | awk '{print $1}' | xargs)"
if [[ $pids -eq "" ]]; then
echo "Nothing to kill"
else
for pid in "${pids[@]}"
do
echo "Killing ${pid}"
Sudo kill $pid
echo "Killed ${pid}"
done
kill_postgres $*
fi
fi
}
Ich hatte das gleiche Problem, diese Erklärung hat es für mich gelöst: http://blog.55minutes.com/2013/09/postgresql-93-brew-upgrade/
der Schlüsselschritt bestand darin, das Ende meiner /usr/local/var/postgres/server.log, zu betrachten, um zu sehen, was das eigentliche Problem war der Aktualisierung von PostgreSQL
Ich hatte das gleiche Problem in der Produktion (Entwicklung hat alles funktioniert). In meinem Fall ist der DB-Server nicht auf derselben Maschine wie die App.
bundle exec rake db:migrate Rails_ENV=production
und dann den Server neu starten und alles hat funktioniert.
Der Homebrew-Paketmanager enthält Startlisten, die automatisch gestartet werden. Für weitere Informationen führen Sie brew info postgres
aus.
Manuell starten:
pg_ctl -D /usr/local/var/postgres start
Manuell anhalten:
pg_ctl -D /usr/local/var/postgres stop
Automatisch starten:
"Damit launchd postgresql jetzt startet und bei der Anmeldung neu startet:"
brew services start postgresql
Sie müssen die postmaster.pid
-Datei nicht löschen, da dies zu einer Beschädigung der Daten führen kann.
Möglichkeit? Einfach kill
den Prozess (verwenden Sie nicht kill -9
, nur ein gewöhnlicher Kill wird es tun).
Dann starten Sie einfach den Postgres-Server und Sie können loslegen!
Hier sind die Schritte, um dies zu erreichen:
Suchen und öffnen Sie die postmaster.pid
-Datei (meine ist auf Mac Sierra)
vi ~/Library/Application\ Support/Postgres/var-10/postmaster.pid
Kopieren Sie die PID - es ist die Nummer in der ersten Zeile der postmaster.pid
-Datei
kill PID
, zB wenn meine PID 381 ist, mache ich kill 381
brew services start postgresql
..__ oder bei Verwendung von postgresapp einfach auf die Schaltfläche start
klickenIch habe den Rails-Server angehalten, rake db:migrate
ausgeführt und meinen Rails s
gestartet.
Ich musste mein Postgres neu installieren, tolle Anweisungen hier: https://medium.com/@zowoodward/effective-uninstall-and-reinstall-psql-with-homebrew-on-osx-fabbc45c5d9d
Dann musste ich einen postgres-Benutzer anlegen: /usr/local/opt/postgres/bin/createuser -s postgres
Bei diesem Ansatz werden alle Ihre lokalen Daten überlastet. Sichern Sie Ihre Daten daher bei Bedarf.
Ich bin auf diesen Fehler gestoßen, nachdem ich einem brew upgrade
gefolgt war, in dem postgresql aktualisiert wurde. Ich habe genau gefunden, wie ich mein Problem in diesem großartigen Beitrag beheben kann. Ich konnte Postgres wieder betriebsbereit machen und sogar über alle meine vorhandenen Datenbanken migrieren https://coderwall.com/p/ti4amw/how-to-launch-postgresql-after-upgrade
Ich hatte gerade dieses Problem und keine der vorgeschlagenen Lösungen funktionierte für mich. Nach vielem googeln fand ich eine Lösung. Das hat bei mir funktioniert.
Zuerst musste ich diesen Befehl ausführen, um den Server zu starten, und ich schätze, den Speicherort der Konfigurationsdatei festzulegen.
pg_ctl -D /usr/local/var/postgres start && brew services start postgresql
Dann habe ich diesen Befehl ausgeführt, um auf Postgres zuzugreifen
psql postgres
Und bei der postgres-Eingabeaufforderung gab ich "\ du" ein, um die Rollen aufzulisten
postgres=# \du
Die Postgres-Rolle fehlte, also musste ich sie mit diesem Befehl erstellen
CREATE ROLE POSTGRES WITH SUPERUSER CREATEDB CREATEUSER CREATEROLE REPLICATION BYPASSRLS ;
Das hat mein Problem gelöst und ich hoffe, das hilft jemand anderem.