Como alguns outros, estou recebendo esse erro ao executar o rake db: migrate no meu projeto ou até mesmo tentar a maioria das tarefas de banco de dados para meus aplicativos Ruby on Rails 3.2.
PGError (não foi possível conectar ao servidor: não existe esse arquivo ou diretório. O servidor está executando localmente e aceitando conexões no soquete de domínio Unix "/tmp/.s.PGSQL.5432"?
Instalei o PostgreSQL com o Homebrew há muito tempo e, após uma tentativa de instalação do MongoDB recentemente, minha instalação do PostgreSQL nunca foi a mesma. Estou executando o OS X versão 10.6 Snow Leopard.
O que há de errado e como entendo melhor como o PostgreSQL é e deve ser configurado no meu Mac?
Até agora (eu acho) isso me diz que o PostgreSQL não está executando (?).
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
Mas isso me diz que o PostgreSQL está em execução?
✪ launchctl load -w /usr/local/Cellar/postgresql/9.1.4/homebrew.mxcl.postgresql.plist (ruby-1.9.2-p136)
homebrew.mxcl.postgresql: Already loaded
Como faço para corrigir isso? o que não estou vendo?
PS: ~/Library/LaunchAgents
inclui dois arquivos .plist do PostgreSQL. Não tenho certeza se isso é relevante.
org.postgresql.postgres.plist
homebrew.mxcl.postgresql.plist
Eu tentei o seguinte e obtive um resultado como abaixo.
$ 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?
Eu li que isso está ocorrendo porque o OS X instala sua própria versão do PostgreSQL e o Homebrew instala uma versão diferente em um local diferente e os comandos do PostgreSQL estão procurando no diretório / tmp /. Você precisará pesquisar mais sobre o Stack Overflow, mas basicamente vinculará o PostgreSQL para que qualquer coisa que procure nesse caminho tmp encontre o caminho real, se isso fizer sentido.
Este é o link em que encontrei mais algumas coisas para tentar, especificamente fazendo o link simbólico conforme descrito acima, o Mac OSX Lion Postgres não aceita conexões em /tmp/.s.PGSQL.5432 . Eu ainda gostaria que alguém reunisse uma explicação decente dos conceitos por trás da instalação do PostgreSQL no OS X e por que tudo é tão difícil.
Informações mais recentes para ajudar na solução de problemas:
$ which psql // This tells you which PostgreSQL you are using when you run $ psql.
Então corra:
$ echo $PATH
O principal a levar em conta é o seguinte:
Certifique-se de que a entrada do caminho para a cópia do PostgreSQL que você deseja executar seja apresentada ANTES do caminho para o PostgreSQL do sistema OS X.
Este é um requisito essencial que decide qual PostgreSQL será executado e é o que me disseram que leva à maioria desses problemas.