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:migrate
no 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
ruby-on-rails
database
postgresql
macos
homebrew
Gary Lai
fonte
fonte
brew postgresql-upgrade-database
Respostas:
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.
fonte
rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
tail /usr/local/var/postgres/server.log
À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 utf8
removeu 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.fonte
postgres -D /usr/local/var/postgres
diz 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ãopg_ctl -D /usr/local/var/postgres -l logfile start
e, em seguida, meu servidor foi iniciado em segundo planobrew services start postgres
em OSX para iniciar o postgres em fundo, em vez depostgres -D /usr/local/var/postgres
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:
fonte
Se a instalação e desinstalação do postgres com o brew não funcionar, verifique os logs da instalação do postgresql ou:
se você vir esse tipo de saída:
Em seguida, tente o seguinte:
Em seguida, inicie o servidor:
Fonte
fonte
No Yosemite, se o arquivo pid estiver bloqueando a inicialização do Postgres e você tiver um
launchctl
daemon tentando (e falhando) carregar os daemons do banco de dados, será necessário descarregar o arquivo plist:Em seguida, remova o arquivo pid
Em seguida, recarregue o
launchctl
daemonfonte
Para quem lê isso e usa o Postgres.app, pode ser necessário
host: localhost
no seu database.yml. http://postgresapp.com/documentation#toc_3fonte
Atualizar o banco de dados funciona para mim
brew postgresql-upgrade-database
fonte
trabalhou para mim!
fonte
Verifique se o arquivo de soquete existe.
Caso contrário, verifique o seu postgresql.conf quanto à alteração do unix_socket_directory.
fonte
$ 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
$ 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 melhorO 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:
fonte
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
Reiniciei os serviços do postgres
Isso funcionou para mim.
fonte
A maneira mais infalível de contornar isso é fazer
Isso manterá sua permissão de usuário etc intacta e tudo será redefinido para novo. Funciona o tempo todo!
fonte
rm /usr/local/var/postgres/postmaster.pid
no Mac, não funcione, use este comando.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 pg
e entãobundle
(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.
fonte
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
Atualize os bancos de dados:
Arquive os bancos de dados antigos:
Reinicie o postgres:
Gemas atualizadas (para trilhos / registro ativo):
fonte
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
por exemplo:
então faça
por exemplo
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 !!!
fonte
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.
Execute o psql com a opção -host
Não é necessário fazer um link direto
fonte
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
fonte
Se o postgres foi instalado usando o homebrew, você pode corrigir isso executando:
fonte
Isso funcionou para mim (como uma mistura de respostas anteriores):
Fonte: https://coderwall.com/p/zf-fww/postgres-on-osx-with-homebrew-not-running-after-osx-crash
fonte
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:
O comando acima deve permitir que você inicie o postgres
fonte
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:
rails server
,rails console
,guard
, etc ...brew info postgres
fonte
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:
fonte
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ê.
fonte
É porque um servidor anterior ainda está em execução, tente fechar tudo e reexecutar seu aplicativo.
fonte
Para quem usa esse comando e não funciona ou o arquivo não está lá e está usando Ruby on Rails
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)
fonte
Eu tive o mesmo problema porque estou usando um nome de usuário errado no Postgres no código. Entrei no postgres
psql -d postgres
e entrei\du
para 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
fonte
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.
fonte
Isso acontece quando o servidor postgres não está em execução. Etapas para instalar corretamente o Postgres via Homebrew no MAC:
brew install postgres
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]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.]fonte
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
postgres
na linha de comando do diretório do seu projetofonte
Depois de uma enorme quantidade de idas e vindas, ele realmente se resumiu à
pg
versão gem que eu estava usando. Nos independentes, apg
versão0.15.1
não se conectaria à porta 5432, mas a versão0.17.1
funciona muito bem - muito estranha.fonte