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
Gary Lai
fonte
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.

jonathanpberger
fonte
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.

FreePender
fonte
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
Mosab Sasi
fonte
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

svelandiag
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
Ryan Atallah
fonte
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

David Winiecki
fonte
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

Tomer G
fonte
👍✅⭐️🙏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!

rld
fonte
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
jrwren
fonte
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
rld
fonte
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.

Abdullah Gürsu
fonte
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!

attaboyabhipro
fonte
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.

John
fonte
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
stujo
fonte
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 !!!

user1596067
fonte
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

Juno Choo
fonte
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

Austin
fonte
4

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

brew link postgres
Cl Local
fonte
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

Ashwin
fonte
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
TomFuertes
fonte
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"?
Ruy Diaz
fonte
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ê.

lisyk
fonte
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.

Kamara Jōb
fonte
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)

Esteban Echeverry
fonte
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

Brilliant-DucN
fonte
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.

Sergio Zapata
fonte
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.]

Souvik Das
fonte
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

Benjamin Dunphy
fonte
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.

Anthony
fonte