Mac atualizado agora mesmo, postgres agora quebrado

0

Eu executo o postgres 9.1 / ruby 1.9.2 / rails 3.1.0 em um maxbook air para o local dev. Tudo está funcionando sem problemas há meses, (embora esta seja a primeira vez que eu fiz desenvolvimento em um mac.)

É um macbook air do ano passado, e hoje recebi a mensagem de atualização do software mac osx como fiz algumas vezes antes, e meu sistema baixou aproximadamente 450mb de atualizações e reiniciou. Agora diz que está no OSX 10.7.3.

O ponto é, o postgres parou de funcionar, quando eu inicio o meu servidor thin (mirror heroku cedar) como normal, e então navego para o meu aplicativo rails que eu recebo:

PG::Error

could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

O que aconteceu? Após navegar por algumas perguntas, ainda estou confuso, mas aqui estão algumas informações adicionais:

  • Executar o psql a partir da linha de comando dá o mesmo erro
  • Eu posso rodar o pgadmin 3 e conectar através dele e executar o SQL sem problemas
  • Executando qual psql mostra a versão como / usr / bin / psql
  • Eu criei um usuário do PostgreSQL quando recebi o mac (sempre foi no leão) Eu não tenho ideia do porque, quase certamente eu estava seguindo um tutorial que deixei de armazenar em minhas anotações . O ponto é que estou ciente de que há um usuário _postgres também. Eu sei que é lixo, mas além de uma nota sobre senhas, eu não tenho nenhuma informação extra sobre como eu configurei postgres - embora a implicação óbvia é que eu não usei o usuário _postgres.

Alguém tem sugestões ou informações sobre o que pode ter sido alterado / o que posso tentar depurar e corrigir? Obrigado.

Editar: Jogando com base nesta pergunta e resposta: link , veja esta sequência de comandos:

$ sudo su postgreSQL
bash-3.2$ /Library/PostgreSQL/9.1/bin/pg_ctl start -D /Library/PostgreSQL/9.1/data
pg_ctl: another server might be running; trying to start server anyway
server starting
bash-3.2$ 2012-04-08 19:03:39 GMT FATAL:  lock file "postmaster.pid" already exists
2012-04-08 19:03:39 GMT HINT:  Is another postmaster (PID 68) running in data directory "/Library/PostgreSQL/9.1/data"?

bash-3.2$ exit
    
por user52224 08.04.2012 / 20:48

1 resposta

5

Se a máquina for desligada sem passar pelo processo de desligamento real, o PostgreSQL se recusará a iniciar durante a próxima inicialização. Isso ocorre porque o arquivo PID anterior ainda está lá e o PostgreSQL acha que já está em execução. É o que a mensagem de erro da sua edição está dizendo.

O que você precisa é remover o arquivo postmaster.pid do diretório do PostgreSQL. De acordo com a sua mensagem de erro, o caminho completo para o arquivo PID é: /Library/PostgreSQL/9.1/data/postmaster.pid . Remova esse arquivo e o PostgreSQL irá iniciar sem problemas.

    
por 20.08.2012 / 20:06