Acabei de atualizar meu MacMini Server do Lion Server para o Mountain Lion usando o OS X Server. Estou tendo o mesmo problema com o PostgreSQL que tive no ano passado, quando instalei o Lion Server pela primeira vez.
Quando tento executar qualquer tipo de comando de terminal do PostgreSQL, recebo a seguinte mensagem de erro notória que muitos receberam ao longo dos anos:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Eu estava tentando alterar a senha de _postgres quando recebi o erro. Tentei vários comandos, mas obtive o mesmo erro. Acabei de reiniciar meu servidor, mas sem sorte. Eu loguei como root para olhar em / var / pgsql_socket e a pasta está vazia. A pasta / var / pgsql_socket_alt também está vazia.
Eu verifiquei online sobre isso. No entanto, quase todas as soluções que li, incluindo no Stack Overflow, sugerem a remoção e reinstalação do PostgreSQL. Não sei, mas não me parece uma opção plausível porque várias opções no App de servidor usam PostgreSQL. Entrei em contato com o Apple Enterprise Support (sem acordo) e fui informado de que meu problema teria que ser resolvido pelos desenvolvedores, que gerariam $ 695.
Eu tenho um site que está fora do ar porque não consigo reconstruí-lo. Não sei onde buscar ajuda com isso neste momento. Vou continuar procurando online para ver se consigo encontrar algo. No entanto, espero que alguém possa me dar uma resposta rápida para que eu possa reconstruir meu banco de dados.
Atualização: 13/12/2012 15:33 GMT-6
Aqui está minha saída para ps auwwx | grep postg:
_postgres 28123 0.0 0.1 2479696 7724 ?? Ss 3:01PM 0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1 28216 0.0 0.0 2432768 620 s000 R+ 3:02PM 0:00.00 grep postg
_postgres 28138 0.0 0.0 2439388 752 ?? Ss 3:01PM 0:00.01 postgres: stats collector process
_postgres 28137 0.0 0.0 2479828 1968 ?? Ss 3:01PM 0:00.00 postgres: autovacuum launcher process
_postgres 28136 0.0 0.0 2479696 544 ?? Ss 3:01PM 0:00.00 postgres: wal writer process
_postgres 28135 0.0 0.0 2479696 732 ?? Ss 3:01PM 0:00.01 postgres: writer process
_postgres 28134 0.0 0.0 2479696 592 ?? Ss 3:01PM 0:00.00 postgres: checkpointer process
_postgres 28131 0.0 0.0 2439388 368 ?? Ss 3:01PM 0:00.00 postgres: logger process
Atualização: 13/12/2012 18:10 GMT-6
Após intensa pesquisa na web, este vídeo foi encontrado. Consegui fazer o PostgreSQL funcionar e remover o erro. Consigo me conectar usando pgadmin e phppgadmin. Eu estava prestes a voltar para o Lion Server por pura frustração. Agora não vou precisar.
fonte
psql
está do seuPATH
antes da versão que você instalou. Eles procuram o soquete Unix em lugares diferentes. Use tcp / ip especificando-h localhost
ou, de preferência, corrija seuPATH
para que o corretopsql
seja encontrado primeiro. A decisão bizarra da Apple de não apenas empacotar o PostgreSQL, mas mexer com ele para colocar as coisas em lugares não padronizados é a causa raiz deste problema.homebrew
eosx
@CraigRinger pode ter a resposta certa para você, confirme combrew doctor
.Respostas:
Consegui adicionar o seguinte ao meu .bash_profile para evitar o erro:
Isso funciona porque :
Seu sistema operacional oferece suporte a soquetes de domínio Unix, mas o soquete Unix do PostgreSQL que
psql
precisa não existe ou está em um local diferente do esperado.Especificar um nome de host explicitamente como
localhost
forçapsql
para usar TCP / IP. Definir uma variável de ambientePGHOST
é uma das maneiras de conseguir isso. Está documentado no manual do psql .fonte
host: localhost
em database.yml. @dwhalendatabase.yml
, quando esse erro apareceu após o downgrade do Postgres para uma versão mais antiga gerenciada pelo Homebrew.Tente colar no console:
fonte
Consegui resolver simplesmente preenchendo 127.0.0.1 para o endereço do host PostgreSQL em vez de deixá-lo em branco. (Exemplo de Django)
fonte
Abra 'postgresql.conf' em seu editor favorito. Procure a variável 'unix_socket_directories', provavelmente será assim:
Mude a linha para esta:
Observe se você deseja que os arquivos de socket em mais de um diretório os separe por vírgula.
fonte
Uma solução muito mais simples (graças a http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ ). Eu atualizei para o postgres 9.4. No meu caso, tudo que eu precisava fazer (depois de um dia pesquisando no Google e sem sucesso)
Reinicie o webrick e pronto!
fonte
Conforme mencionado por outros nos comentários, uma solução realmente simples para esse problema é declarar o 'host' do banco de dados dentro da configuração do banco de dados. Adicionando esta resposta apenas para torná-la um pouco mais clara para quem está lendo isso.
Em um aplicativo Ruby on Rails, por exemplo, edite /config/database.yml:
Nota: a última linha adicionada para especificar o host. Antes de atualizar para o Yosemite, nunca precisei especificar o host dessa forma.
Espero que isso ajude alguém.
Felicidades
fonte
.s.PGSQL.5432
arquivo.Verifique o status do banco de dados:
Se o banco de dados não estiver em execução, inicie o banco de dados:
fonte
Você pode verificar seu arquivo postgresql.conf ??
Em qual porta seu postgres está rodando ??
Acho que não está funcionando na porta 5432. Se não mudar para 5432
OU em uso de terminal
fonte
Eu tive esse problema com Django.
Corrija-o definindo explicitamente o nome do host como "localhost".
fonte
eu faço em palavras fazendo isto:
e escolha seus locais preferidos
(9.5 é minha versão do postgresql)
e então palavra!
fonte
Se você tem o problema acima, mas atualizou do Yosemite, uma abordagem diferente é necessária, pois a solução de atualização pode destruir alguns arquivos. Mais detalhes estão faltando em `pg_tblspc` após a instalação da última versão do OS X (Yosemite ou El Capitan) .
fonte
fonte
Continuei recebendo o erro acima e nenhuma das soluções acima funcionou para mim. Finalmente, a solução a seguir resolveu meu problema no Mac OS X
Instale o postgres usando o brew
Instale serviços de cerveja
Para iniciar o postgres como um serviço de segundo plano
Para parar o postgres manualmente
Também podemos usar o brew services para reiniciar o Postgres
fonte
verifique se o servidor postgres está funcionando com o seguinte código
se o servidor postgres estiver inativo, escreva o seguinte comando.
fonte
Recebi este erro depois que meu computador travou e reiniciou sozinho. A solução para mim não foi encontrada nesta página, mas em outra questão SO muito bem avaliada com o mesmo erro psql: não foi possível conectar ao servidor: Não existe esse arquivo ou diretório (Mac OS X) . A resposta: apenas exclua esse arquivo
/usr/local/var/postgres/postmaster.pid
, e façabrew services restart postgresql
o truque. Preste atenção ao aviso na resposta do link sobre como matar os processos do postgres antes de fazer isso, pois você pode corromper seu banco de dados permanentemente.fonte
As permissões de arquivo são restritivas no banco de dados Postgres pertencente ao Mac OS. Essas permissões são redefinidas após a reinicialização ou reinicialização do Postgres: por exemplo, serveradmin start postgres.
Portanto, redefina temporariamente as permissões ou propriedade:
A reconfiguração de permissões não é segura, portanto, instale uma versão do banco de dados de sua propriedade para uma solução.
fonte
Demorei um pouco, mas finalmente consegui fazer isso funcionar depois de analisar as sugestões oferecidas e fazer pesquisas adicionais na web. Usei as informações do seguinte vídeo do YouTube criado por Mactasia:
http://www.youtube.com/watch?v=y1c7WFMMkZ4
Quando fiz isso, vi o arquivo com .lock como a extensão. No entanto, ainda recebo o erro quando tentei iniciar o servidor Rails quando retomei o trabalho em minha aplicação Rails usando PostgreSQL. Desta vez, recebi um erro de permissão negada. Foi quando me lembrei de que não apenas tive que alterar listen_addresses no plist, mas também tive que alterar unit_socket_permissions para 0777. Também fiz login como root para alterar as permissões na pasta var / pgsql_socket onde poderia acessá-la no nível de usuário. Postgres está funcionando bem agora. Estou recarregando meus dados do backup do SQL.
O que eu não entendi foi que quando eu tinha o wiki ativado, o PostgreSQL supostamente estava funcionando quando fiz um sudo serveradmin fullstatus postgres, mas ainda recebi o erro. Ah bem.
fonte
Acabei de criar um novo cluster e funcionou para mim, estava usando (PostgreSQL) 9.3.20:
fonte
Primeiro remova o postgres instalado:
Em seguida, instale o 'synaptic':
Em seguida, instale o Postgres
fonte
Para o aplicativo RubyOnRails, adicione
localhost
Se você usar a versão Postgresql personalizadafonte