O Postgres não pôde se conectar ao servidor


416

Depois que fiz a atualização e a atualização, meus postgres tiveram algum problema. Tentei desinstalar o postgres e instalar novamente, mas não funcionou tão bem.

Esta é a mensagem de erro. (Eu também recebi essa mensagem de erro quando tento fazer rake db: migrate)

$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Como posso resolver isso?

Versão para Mac: leão da montanha.

versão homebrew: 0.9.3

Versão do postgres: psql (PostgreSQL) 9.2.1

E foi isso que eu fiz.

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

Agora, depois de reinstalar o howbrew, quando o uso $ psql, ele não mostra nenhuma mensagem de erro.

Mas eu corro rake db:migrateno meu aplicativo rails, mostra:

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"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

Finalmente, encontro a solução.

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

Essa solução é um pouco complicada, mas funciona. Espero que alguém tenha uma solução melhor

Atualizar

Isso funciona para mim também.

rm /usr/local/var/postgres/postmaster.pid

3
Estou tendo exatamente o mesmo problema, mas sua solução não funcionou para mim. Eu acho que esse é um problema de permissões, mas não tenho o conhecimento de permissões de arquivo para corrigi-lo.
ajbraus

Para quem instala o PG via Homebrew e está tendo problemas, encontrei outra resposta. Apenas desinstale o pg gem e reinstale com as configurações do Homebrew. Veja a resposta em stackoverflow.com/a/19609228/1072058 .
Zquintana 26/10/2013

resposta semelhante aqui - stackoverflow.com/questions/13573204/…
VelLes

1
Inicie o postgres.
atw

4
Melhore a sua existente para a versão mais recente com o seguinte comando brew postgresql-upgrade-database

Respostas:


799

Teve um problema semelhante; um arquivo pid estava impedindo a inicialização do postgres. Para fixar isso:

rm /usr/local/var/postgres/postmaster.pid

e então está tudo bem.


4
Isso funcionou para mim no OSX Mavericks depois de ver esse problema em uma atualização / reinicialização.
eprothro

3
@jstafford obrigado, eu já resolvi! :) A solução foi desinstalar via homebew e reiniciar o computador imediatamente, para que eu pudesse reinstalar o postgres. A versão antiga estava sendo executada em segundo plano, criando arquivos e conflitos toda vez que eu tentava reinstalar o postgres.
Betoharres

199
Isto não funcionou para mim em Mavericks:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus

16
Isso funcionou para mim, depois de apagar, tive que iniciar o postgres. # pg_ctl -D / usr / local / var / postgres -l /usr/local/var/postgres/server.log start
Ricardo Castañeda

12
Eu recomendo rejeito log do servidor para garantir que esta é realmente a questão:tail /usr/local/var/postgres/server.log
Josh Bodah

255

Às vezes, isso pode ser um problema com uma atualização do postgres.

No meu caso, isso aconteceu ao atualizar do 9.3 para o 9.4.

Consulte http://www.postgresql.org/docs/9.4/static/upgrading.html

OS X / Homebrew:

Tente executar postgres -D /usr/local/var/postgres- ele fornecerá uma saída muito mais detalhada se o postgres falhar ao iniciar.

No meu caso, a execução rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8removeu meus bancos de dados antigos e reinicializou o esquema do postgres db.

Agradecemos a https://github.com/Homebrew/homebrew/issues/35240 por essa solução.

Depois de regenerar meus bancos de dados (com rake db:create) tudo funcionou bem novamente.


1
Isso funcionou para mim com um postgres homebrew instalado no Yosemite.
Cpursley

7
Se correr postgres -D /usr/local/var/postgresdiz que o diretório de dados foi inicializado com uma versão mais antiga, incompatível do Postgres, e você não quer perder seus dados locais, você pode tentar esta discussão
Nathan Long

Após a execução do comando acima, executei: pg_ctl -D /usr/local/var/postgres -l logfile starte, em seguida, meu servidor foi iniciado em segundo plano
Tommyixi 11/11/16

5
Use brew services start postgresem OSX para iniciar o postgres em fundo, em vez depostgres -D /usr/local/var/postgres
Mike Andrianov

1
@coffekid Eu tive o mesmo problema e o corrigi com as instruções aqui: stackoverflow.com/questions/24379373/…
Micah Walter:

68

Encontrei uma solução que funcionou para mim aqui:

/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory

Basicamente, você executa o seguinte comando para iniciar manualmente o servidor:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

8
De todas as respostas, essa é a única que funcionou para mim. Usando El Capitan
Patrick_870206

Eu tentei com esse cmd, mas não está funcionando para mim!
Harshit Trivedi 19/07/19

41

Se a instalação e desinstalação do postgres com o brew não funcionar, verifique os logs da instalação do postgresql ou:

postgres -D /usr/local/var/postgres

se você vir esse tipo de saída:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

Em seguida, tente o seguinte:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

Em seguida, inicie o servidor:

pg_ctl -D /usr/local/var/postgres -l logfile start

Fonte


2
Isso funciona quando o motivo é diferente da resposta aceita, ou seja, os arquivos do banco de dados não são compatíveis com a versão atual. Como exatamente esse tem sido o meu problema, eu votei.
Falk Schuetzenmeister

1
Este comando funciona para mim.
Ccr

works for Mojave 10.14.6
Sgryt87

34

No Yosemite, se o arquivo pid estiver bloqueando a inicialização do Postgres e você tiver um launchctldaemon tentando (e falhando) carregar os daemons do banco de dados, será necessário descarregar o arquivo plist:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Em seguida, remova o arquivo pid

$ rm /usr/local/var/postgres/postmaster.pid

Em seguida, recarregue o launchctldaemon

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

28

Para quem lê isso e usa o Postgres.app, pode ser necessário host: localhostno seu database.yml. http://postgresapp.com/documentation#toc_3


Isso altera a conexão de um soquete para uma conexão TCP, o que pode ter implicações negativas. Veja stackoverflow.com/questions/6770649/…
Brett Bim

1
Hmm, na verdade, se você recusar ... Talvez não diga por que? meta.stackoverflow.com/questions/252297/… Ou talvez diga o porquê, mas efetue logout primeiro para ficar anônimo.
21714 David Winiecki

Acho que o voto negativo é porque a pergunta original não era para o Postgres.app, mas para o Homebrew. Portanto, embora a resposta possa ser útil em algum lugar, ela não está respondendo à pergunta.
11135 Brian Querido

O link não parece ir a lugar nenhum específico (e pesquisar "localhost" no passado não tem resultados), mas isso resolveu o problema depois de uma hora de pesquisa.
sixty4bit

25

Atualizar o banco de dados funciona para mim

brew postgresql-upgrade-database


👍✅⭐️🙏Obrigado Tomer! Isso funcionou para mim em 6/2/20, atualizando de 9,4 para 12 no macOS Mojave 10.14.6
Rob Bednark

19
brew services start postgres 

trabalhou para mim!


17

Verifique se o arquivo de soquete existe.

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

Caso contrário, verifique o seu postgresql.conf quanto à alteração do unix_socket_directory.

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

1
Esta é a minha resposta do computador. $ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
Gary Lai

29
Finalmente, encontro a solução. $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/Essa solução é um pouco complicada, mas funciona. Espero que alguém tenha uma solução melhor
Gary Lai

bom trabalho @GaryLai. Muito estranho que eu não tinha que fazer o mesmo com o meu PostgreSQL homebrew
jrwren

2
isso pode ajudar algumas pessoas por aí: github.com/mxcl/homebrew/issues/14527
AdamT

14

O problema também pode ser atribuído a um processo travado que deixou o arquivo postmaster.pid para trás. Eu faço isso e trabalho:

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

10

O problema é que já existe um serviço em execução na porta 5432 e não podemos estabelecer uma conexão de soquete psql por essa porta.

Eu removi o arquivo de soquete

rm -rf /tmp/.s.PGSQL.5432/

Reiniciei os serviços do postgres

postgres -D /usr/local/var/postgres

Isso funcionou para mim.


9

A maneira mais infalível de contornar isso é fazer

brew reinstall postgresql

Isso manterá sua permissão de usuário etc intacta e tudo será redefinido para novo. Funciona o tempo todo!


trabalhou como um campeão !!!! Tudo isso era necessário.
Akash K

Isso funciona, mas eu recomendo que, rm /usr/local/var/postgres/postmaster.pidno Mac, não funcione, use este comando.
Yaseen Ahmad

7

Alterar as definições de configuração do postresql ou database.yml, alterar o $ PATH ou criar links simbólicos eram todos desnecessários para mim. Tudo que eu precisava fazer era gem uninstall pge então bundle(ougem install pg ).

O problema era que o gem pg havia sido instalado antes do homebrew postgres, assim como as configurações da versão do postgres que acompanha o MacOS. A reinstalação (e, portanto, a reconstrução da extensão nativa) corrigiu o problema.


Só queria dizer obrigado. Acabei de atualizar o PostgresApp no ​​macOS e, embora eu pudesse conectar usando o psql, não consegui conectar via rails. desinstalar e reinstalar a pg gem foi apenas o bilhete! :)
craig1410

7

Isso aconteceu comigo quando atualizei da 9.3.4 para a 9.5, pois os bancos de dados são incompatíveis sem a atualização.

Eu usei pg_upgrade da seguinte maneira:

Parar postgres

$ brew services stop postgresql

Atualize os bancos de dados:

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

Arquive os bancos de dados antigos:

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

Reinicie o postgres:

 $ brew services start postgresql

Gemas atualizadas (para trilhos / registro ativo):

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install

Estas instruções também estão em collectiveidea.com/blog/archives/2016/01/08/... , e ainda trabalhou para mim hoje, quando a atualização do 9.4.0 para 9.6.3. Não precisei fazer nada no arquivo .pid manualmente.
Jan Hettich

7

Na verdade, é isso que você deve fazer:

você deveria olhar para /usr/local/var/postgres/postmaster.pid

e então olhe a primeira linha do arquivo - este é o PID ruim

Corre

ps aux | grep <PID>

por exemplo:

ps aux | grep 12345

então faça

kill <PID>

por exemplo

kill 12345

Supondo que ainda esteja em execução

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

não dê ouvidos à resposta aceita, é ruim e corromperá seus dados !!!


Obrigado, isso funcionou para mim. Remover o postmaster.pid na resposta aceita não foi suficiente.
Abe Petrillo

4

Opção psql

-h hostname --host = hostname

: Especifica o nome do host da máquina na qual o servidor está sendo executado. Se o valor começar com uma barra, ele será usado como o diretório do soquete do domínio Unix.

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

Execute o psql com a opção -host

$ psql -p 5433 -h /var/run/postgresql

Não é necessário fazer um link direto


4

Também deparei com esse problema no MacOS Sierra e, quando executamos o pg_ctl conforme descrito acima, tivemos o seguinte erro pg_ctl: no database directory specified and environment variable PGDATA unset. Então, seguimos as etapas aqui que resolveram nosso problema, a saber:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

Se o postgres foi instalado usando o homebrew, você pode corrigir isso executando:

brew link postgres


4

Se você desligasse o sistema sem sair do psql, o postgres não removeria alguns arquivos.

Não encontrei o arquivo postmaster.pid no local usr / local / var / postgres

Então eu fiz o abaixo:

serviços de preparação para cerveja iniciar o postgresql

O comando acima deve permitir que você inicie o postgres


3

Corri para esse problema depois de tentar restaurar / soltar / criar um banco de dados enquanto outros processos os acessavam. A correção do MacOSX / Homebrew foi:

  1. fechar todos os outros processos acessando rails server, rails console,guard , etc ...
  2. carregar / descarregar usando os comandos encontrados em brew info postgres
  3. execute restore / drop / create a partir de antes

3

FWIW, isso aconteceu comigo hoje, mas o que aconteceu foi que eu estava executando as atualizações do Ubuntu na época, que provavelmente estavam atualizando o Postgres. Depois que a atualização foi concluída, eu consegui me conectar sem problemas.

Por uma questão de integridade, eu estava tentando recuperar registros do banco de dados a partir de um console do Rails:

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

3

Parece que seu psql não roda. Você deve executá-lo antes de conectar. Você pode fazer isso usando Postgres.app apenas para Mac OS. (Baixe e instale este aplicativo http://postgresapp.com ) Abra o aplicativo e você terá um servidor PostgreSQL pronto e aguardando novas conexões. Feche o aplicativo e o servidor será encerrado. Você também pode encontrar essas informações aqui http://www.postgresql.org/download/macosx/ . Espero que isso ajude você.


1
Embora esse link possa responder à pergunta, é melhor incluir aqui as partes essenciais da resposta e fornecer o link para referência. As respostas somente para links podem se tornar inválidas se a página vinculada for alterada.
Kmeixner

A questão estava se referindo especificamente a uma instalação de homebrew e não a uma instalação do Postgres.app. Embora essa resposta seja útil, ela não responde à pergunta. Seria como dizer "Use o MySQL".
Brian Dear

3

É porque um servidor anterior ainda está em execução, tente fechar tudo e reexecutar seu aplicativo.


3

Para quem usa esse comando e não funciona ou o arquivo não está lá e está usando Ruby on Rails

rm /usr/local/var/postgres/postmaster.pid

Ou qualquer outro comando e continue falhando.

Resolvi esse problema ao desinstalar com o Brew. Eu tive que desinstalar com o brew 2 vezes, porque na primeira desinstalação restará outra versão do postgresql, com a segunda desinstalação, o processo será concluído.

Instale o postgresql com o Brew

Em seguida, solte, crie e migre as bases de dados do projeto

(Não esqueça de iniciar o servidor postgresql)


3

Eu tive o mesmo problema porque estou usando um nome de usuário errado no Postgres no código. Entrei no postgres psql -d postgrese entrei \dupara obter o nome da função e corrigir o nome de usuário do Postgres.

Então, quando vocês enfrentam esse problema, precisam ter certeza de que estão usando o nome de usuário, senha, nome de host e banco de dados corretos do Postgres ...

Espero que isso ajude alguém


3

Você mudou recentemente o pg_hba.conf? se você apenas verificou algum erro de digitação em:

"local" é apenas para conexões de soquete de domínio Unix

local tudo tudo senha

Conexões locais IPv4:

hospedar todas as senhas 127.0.0.1/32

Conexões locais IPv6:

host all all :: 1/128 senha

Às vezes, um simples erro pode nos dar dor de cabeça. Espero que isso ajude e desculpe se meu inglês não é bom.


3

Isso acontece quando o servidor postgres não está em execução. Etapas para instalar corretamente o Postgres via Homebrew no MAC:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [Isso inicializa o postgres para usar o diretório especificado como o diretório do banco de dados. Normalmente, não é aconselhável usar o diretório do usuário para armazenamento de banco de dados. Edite o arquivo sudoers para adicionar initdb e comandos semelhantes e execute o initdb em / usr / local / var / postgres]

  3. pg_ctl -D /Users/<username>/db -l logfile start [Depois de obter sucesso com a etapa 2, ele solicitará a execução da etapa 3. Este comando inicia o servidor manualmente.]


2

Eu recebi esse mesmo erro. Acontece que o postgres simplesmente não estava em execução (geralmente está sempre em execução em segundo plano, mas por qualquer motivo, não estava hoje).

Se for esse o caso, basta digitar postgresna linha de comando do diretório do seu projeto


2

Depois de uma enorme quantidade de idas e vindas, ele realmente se resumiu à pgversão gem que eu estava usando. Nos independentes, a pgversão 0.15.1não se conectaria à porta 5432, mas a versão 0.17.1funciona muito bem - muito estranha.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.