Como posso saber se meu servidor Postgresql está funcionando ou não?
Estou recebendo esta mensagem:
[~/dev/working/sw] sudo bundle exec rake db:migrate
rake aborted!
could not connect to server: Connection refused
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
Atualizar:
> which postgres
/usr/local/bin/postgres
> pg_ctl -D /usr/local/bin/postgres -l /usr/local/bin/postgres/server.log start
pg_ctl: could not open PID file "/usr/local/bin/postgres/postmaster.pid": Not a directory
Atualização 2:
>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory
macos
postgresql
Ramy
fonte
fonte
Respostas:
A maneira mais simples de verificar os processos em execução:
E procure um comando parecido com isto (sua versão pode não ser 8.3):
Para iniciar o servidor, execute algo assim:
fonte
pgrep postgres
também funciona. Oups auxwww | grep [p]ostgres
para evitar que ogrep
seja pego.ps | grep
sugestão de imperícia.pgrep
é aceitável, apenas.pg_ctl status
é ótimo .ps auxwww | grep postgres
vai correspondergrep postgres
, eless /var/log/postgres/whatever
./Library/PostgreSQL/8.3/data
é arbitrariamente criado pelo usuário por meio doinitdb
comando. aqui está o 8.3 docVocê pode executar o seguinte comando para determinar se o postgress está em execução:
Você também deseja definir a
PGDATA
variável de ambiente.Aqui está o que tenho em meu
~/.bashrc
arquivo para postgres:Para que tenham efeito, lembre-se de fornecê-los da seguinte forma:
Agora, experimente e você deverá obter algo assim:
fonte
Você provavelmente não fez o init postgres.
Se você instalou usando o HomeBrew, o init deve ser executado antes que qualquer outra coisa se torne utilizável.
Para ver as instruções, execute
brew info postgres
Depois de executar isso, ele deve dizer algo como:
Se você ainda estiver tendo problemas, verifique seu firewall. Se você usar um bom como o HandsOff! e foi configurado para bloquear o tráfego, então sua página não verá o banco de dados.
fonte
A partir do PostgreSQL 9.3, você pode usar o comando
pg_isready
para determinar o status da conexão de um servidor PostgreSQL.Dos documentos :
fonte
Depende de onde seu servidor postgresql está instalado. Você usa o pg_ctl para iniciar manualmente o servidor como abaixo.
fonte
O
pg_ctl status
comando sugerido em outras respostas verifica se o processo postmaster existe e, se sim, relata que está em execução. Isso não significa necessariamente que está pronto para aceitar conexões ou executar consultas.É melhor usar outro método, como usar
psql
para executar uma consulta simples e verificar o código de saída, por exemplopsql -c 'SELECT 1'
, ou usarpg_isready
para verificar o status da conexão .fonte
psql -c "SELECT 1" -d {dbname} > /dev/null || postgres -D /usr/local/var/postgres >postgres.log 2>&1 &
se você deseja verificar e iniciar o postgres de uma vez (útil para scripts de automação).