Recentemente, atualizei para o OSX 10.7, quando minha instalação de trilhos funcionou completamente ao tentar conectar-me ao servidor psql. Quando faço isso na linha de comando usando
psql -U postgres
funciona totalmente bem, mas quando tento executar o servidor ou console rails com o mesmo nome de usuário e senha, recebo este erro
...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"?
Qualquer idéia que possa estar acontecendo seria super útil! Obrigado!
Respostas:
É uma questão de PATH. O Mac OSX Lion inclui o Postgresql no sistema agora. Se você fizer um,
which psql
provavelmente verá emusr/bin/psql
vez dousr/local/bin/psql
que é o correto da HomeBrew. Se você executar,brew doctor
deverá receber uma mensagem informando que precisa adicionarusr/local/bin
à cabeça da sua variável env PATH.Editando seu .bash_profile ou .profile ou qualquer shell que você esteja usando e adicionando:
export PATH=/usr/local/bin:$PATH
como a primeira exportação para a
PATH
sessão, você encerra a shell ou origina seu arquivosource ~/.bash_profile
e agora deve estar OK novamente.fonte
Para aqueles que estão interessados, montei a solução. Tudo que eu precisava era adicionar
para o database.yml para o meu ambiente e tudo foi molho.
fonte
Eu tive esse mesmo problema com o Mountain Lion, mas a única coisa que funcionou para mim foi essa correção :
Verifique onde está o destino real:
Eu precisava criar este diretório:
Em seguida, usando o resultado da localização acima, crie este link simbólico:
Eu suspeito que, para a maioria das pessoas no Mountain Lion, você pode simplesmente criar o diretório e fazer o link simbólico e não perder tempo pesquisando, a menos que o link simbólico não funcione.
PS - meu PostgreSQL foi instalado através do instalador oficial.
fonte
Se o problema persistir após alterar o caminho (como aconteceu comigo), tente também isso ...
Parece que o problema (parcialmente) está na própria pg gem. Quando constrói, descobre onde o soquete do domínio deve estar. Se você alterar o local do soquete do domínio após o fato, ele não entrará em vigor até você reconstruir a gema.
fonte
Para quem instalou diretamente do instalador oficial, apenas adicionar o host ao comando funciona sem alterações de caminho:
fonte
Eu tinha o mesmo problema e estava tendo problemas para fazer a solução de John Wang funcionar. Como Darren observou, há um problema com a pg gem. Para fazê-lo funcionar, eu precisava:
Então reinstale.
O que deu certo.
fonte
Também me deparei com isso, mas eu mesmo havia instalado o postgres (não com o homebrew). Se for esse o caso, você precisa encontrar o caminho antigo para o psql (que pode ser / usr / local / bin, mas para mim era / usr / local / pgsql / bin) e anexá-lo ao seu $ PATH.
(antes)
which psql
=> / usr / bin / psql(correção) PATH de exportação = / usr / local / psql / bin: $ PATH
(after) `what psql '=> / usr / local / psql / bin
A sugestão de John Wang de
source ~/.bash_rc
adicionar posteriormente ao seu bash_rc é dourada.fonte
Isso é para homebrew? Portas parece colocá-lo em:
Portanto, certifique-se de usar a exportação
Problema com portas Mac: https://trac.macports.org/ticket/30125
fonte
Não estou satisfeito com as respostas mais votadas, pois elas são específicas do usuário do SO ou remapiam o Postgres para usar TCP em vez de soquetes de domínio, conforme apontado por @pilif. Eu vi outra solução que envolve reordenar os caminhos padrão no nível do sistema para verificar o caminho do Brew antes de um caminho principal do sistema, mas isso parece perigoso, pois pode afetar todas as outras colisões de nomes de aplicativos como esta.
Este site detalha uma solução que meu colega encontrou. Tudo se resume a executar um único script de shell que
Isso vem com a ressalva de que o Postgres padrão do sistema é o que o brew instalou, então você deve fazer um julgamento sobre se isso é adequado para você. Não me vejo precisando do Postgres 8.4 especificamente sobre 9.x, mas o YMMV
fonte
Outra solução possível que funcionou para mim é redefinir o arquivo postmaster, excluindo-o. Basta executar:
Vale a pena verificar o log em busca de erros que você pode encontrar aqui:
A mensagem de erro que eu estava recebendo era:
Tudo funcionou muito bem depois.
fonte
No meu caso, o servidor não foi iniciado devido a configurações incorretas de memória compartilhada. No começo, fiquei confuso porque havia vários processos do postgres em execução, mas esses eram processos padrão do sistema. Olhe para
postmaster
processos!Tudo o que eu precisava fazer era alterar as configurações de memória compartilhada . Brincar com as configurações do caminho não era necessário no meu caso.
fonte
Pode ser necessário especificar o host do seu banco de dados.
fonte
Se você gosta de uma mudança permanente no seu $ PATH, tente o seguinte:
isso irá reescrever o seu
~/.MacOSX/environment.plist
.fonte
Eu sou novo no Rails, mas adicionar o seguinte ao database.yml funcionou para mim:
Não sei por que o Rails padroniza soquetes de domínio em vez de TCP, enquanto o PostgreSQL não configura soquetes de domínio por padrão.
fonte
Meu PostgreSQL está instalado em / Library / PostgreSQL, para que / usr / var não funcione para mim.
Parece que o Woz está correto, porque sempre que fecho a tampa do meu macbook pro, ele trava ... Aqui está o que funcionou após o travamento para mim:
fonte