Come alcuni altri, ricevo questo errore quando eseguo rake db: migrare nel mio progetto o anche provare la maggior parte delle attività del database per le mie applicazioni Ruby on Rails 3.2.
PGError (impossibile connettersi al server: nessun file o directory. Il server è in esecuzione localmente e accetta connessioni sul socket del dominio Unix "/tmp/.s.PGSQL.5432"?
Ho installato PostgreSQL con Homebrew molto tempo fa e in seguito a un tentativo di installazione di MongoDB recentemente la mia installazione di PostgreSQL non è mai stata la stessa. Sto eseguendo OS X v10.6 Snow Leopard.
Cosa c'è che non va e come posso capire meglio come PostgreSQL è e deve essere configurato sul mio Mac?
Finora (penso) questo mi dice che PostgreSQL non è in esecuzione (?).
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
Ma questo mi dice che PostgreSQL è in esecuzione?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
Come posso risolvere questo problema? cosa non vedo?
PS: ~/Library/LaunchAgents
include due file .plist PostgreSQL. Non sono sicuro che sia pertinente.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
Ho provato quanto segue e ho ottenuto un risultato come di seguito.
$ 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?
Ho letto che ciò accade perché OS X installa la propria versione di PostgreSQL e Homebrew installa una versione diversa in un posto diverso e i comandi PostgreSQL stanno cercando nella directory / tmp /. Avrai bisogno di cercare di più su Stack Overflow, ma fondamentalmente link simbolico PostgreSQL in modo che tutto ciò che cerca in quel percorso tmp trovi effettivamente il vero percorso, se questo ha senso.
Questo è il link in cui ho trovato alcune altre cose da provare, in particolare facendo il collegamento simbolico come sopra, Mac OSX Lion Postgres non accetta connessioni su /tmp/.s.PGSQL.5432 . Vorrei ancora che qualcuno mettesse insieme una spiegazione decente dei concetti alla base dell'installazione di PostgreSQL su OS X e del perché sia così difficile.
Informazioni più recenti per la risoluzione dei problemi:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Quindi eseguire:
$ echo $PATH
La cosa chiave da prendere in considerazione è questa:
Assicurarsi che la voce del percorso per la copia di PostgreSQL che si desidera eseguire venga PRIMA del percorso del PostgreSQL del sistema OS X.
Questo è un requisito fondamentale che decide quale PostgreSQL viene eseguito ed è ciò che mi viene detto che porta alla maggior parte di questi problemi.