ATUALIZAÇÃO FINAL:
Eu tinha esquecido de executar o initdb
comando.
</ ATUALIZAÇÃO FINAL>
executando este comando
ps auxwww | grep postgres
Vejo que o postgres não está sendo executado
> ps auxwww | grep postgres
remcat 1789 0.0 0.0 2434892 480 s000 R+ 11:28PM 0:00.00 grep postgres
isso levanta a questão: como inicio o servidor postgresql?
atualizar:
>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
atualização 2:
O toque não foi bem-sucedido, então fiz isso:
> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log
Mas quando tento iniciar o servidor rails, ainda vejo o seguinte:
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
atualização 3:
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
atualização 4:
Descobri que não havia pg_hba.conf (apenas pg_hba.conf.sample), então modifiquei a amostra e a renomeei (para remover a .sample). Aqui estão os conteúdos:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
mas eu não entendo isso:
> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
Além disso:
sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
atualização 5:
sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
atualização 6:
isso parece estranho:
> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory
no entanto, eu fiz isso:
>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample
então eu fiz isso:
egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
# supported by the operating system:
# %r = remote host and port
então eu tentei isso:
> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf
ainda está recebendo o mesmo "O servidor está executando?" mensagem.
macos
postgresql
homebrew
Ramy
fonte
fonte
sudo
, iesudo pg_ctl...
Respostas:
O gerenciador de pacotes Homebrew inclui listas do launchctl para iniciar automaticamente. Para mais informações, execute
brew info postgres
.Comece manualmente:
pg_ctl -D /usr/local/var/postgres start
Pare manualmente:
pg_ctl -D /usr/local/var/postgres stop
Iniciar automaticamente:
"Para que o launchd inicie o postgresql agora e reinicie no login:"
brew services start postgresql
Qual é o resultado de
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
?Qual é o resultado de
pg_ctl -D /usr/local/var/postgres status
?Há alguma mensagem de erro no server.log?
Verifique se as conexões localhost tcp estão ativadas no pg_hba.conf:
Verifique os listen_addresses e port em postgresql.conf:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
Limpando
O Postgres provavelmente foi instalado via Homebrew , Fink , MacPorts ou EnterpriseDB .
Verifique a saída dos seguintes comandos para determinar em qual gerenciador de pacotes foi instalado:
fonte
brew services start postgresql
é uma resposta mais atualizada e direta.Se você deseja iniciar e parar manualmente o postgresql (instalado via homebrew), a maneira mais fácil é:
e
Se você possui uma versão específica, certifique-se de colocar o sufixo da versão, por exemplo:
fonte
brew services
cedo ... esta é a única solução que está funcionando para mim. <3 obrigado!brew tap gapple/services
vai fazer o trabalho de comando serviços BREW novamentebrew tap homebrew/services
ainda trabalhando github.com/Homebrew/homebrew-servicesinitdb
ser executado com êxito. Caso contrário, ele silenciosamente falhar (mas parece ter trabalhado, com a exibição de serviço como começou nobrew services list
.brew services restart postgresql
, pois iniciei o db com pg_ctl oubrew services start
disse "outro servidor pode estar em execução" e parei o db com pg_ctl.Eu tinha quase exatamente o mesmo problema, e você citou o comando initdb como sendo a correção. Essa também foi a solução para mim, mas não vi ninguém postar aqui, então para quem está procurando:
fonte
rm -rf /usr/local/var/postgres
e, em seguida, isso funcionou para mimchown _your username on your comp_ usr/local/var/postgres
) e depois o initdb. Depois disso, o servidor inicia automaticamente quando você reinicia (se você seguiu as instruções do Homebrew para isso) ou manualmentepg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
.initdb
(incluindo a remoção do diretório antigo, se necessário),brew services start postgresql
trabalharm -rf
tudo o que está atualmente no seu banco de dados o assusta um pouco, em vez de excluí-lo completamente, você pode usar algo comomv /usr/local/var/postgres /usr/local/var/postgres.backup
movê-lo para um novo diretório de backup e executar o comando para iniciar o banco de dados novamente.Se o seu computador foi reiniciado abruptamente
Primeiro, você deve excluir o arquivo
/usr/local/var/postgres/postmaster.pid
Em seguida, você pode reiniciar o serviço usando um dos muitos outros métodos mencionados, dependendo da instalação.Você pode verificar isso consultando os logs do Postgres para ver o que pode estar acontecendo:
tail -f /usr/local/var/postgres/server.log
fonte
tail -f /usr/local/var/postgres/server.log
se deve excluir esse arquivo. ref coderwall.com/p/zf-fww/...~/homebrew/var/postgres/postmaster.pid
postmaster.pid
se o computador foi reiniciado abruptamente?Outra abordagem é usar o lunchy gem (um wrapper para o launchctl):
Para iniciar o postgres:
Para parar o postgres:
Para mais informações, consulte: " Como instalar o PostgreSQL em um Mac com Homebrew e Lunchy "
fonte
Aqui estão meus 2 centavos: criei um pseudônimo para o postgres pg_ctl e o coloquei em .bash_profile (minha versão do postgresql é 9.2.4 e o caminho do banco de dados é /Library/PostgreSQL/9.2/data).
Lançar novo terminal.
E depois? Você pode iniciar / parar seu servidor postgresql com isso:
fonte
A maneira mais limpa de longe para iniciar / parar / reiniciar postgres se você instalou-lo através de
brew
é simplesmente descarregar e / ou carregar o arquivo de configuração launchd que vem com a instalação:A primeira linha irá parar o postgres e a segunda linha irá iniciá-lo. Não há necessidade de especificar nenhum diretório de dados etc., pois tudo está nesse arquivo.
fonte
brew services start postgres
(e para). Jogue um-v
no final e você pode ver o que está fazendo.Para iniciar o servidor postgresql:
para finalizar o servidor postgresql:
Você também pode criar um alias via CLI para facilitar:
Com eles, você pode digitar "pg-start" para iniciar o Postgres e "pg-stop" para desligá-lo.
fonte
pg_ctl: directory "/usr/local/var/postgres" is not a database cluster directory
como corrigir isso?Para fins de teste, acho que o PostgreSQL App é a melhor opção!
Execute um aplicativo e o servidor está em funcionamento. Feche o aplicativo e o servidor ficará inoperante.
http://postgresapp.com/
fonte
quando você instala o postgresql usando o homebrew:
no final da saída, você verá estes métodos para iniciar o servidor:
Eu acho que esse é o melhor caminho.
Você pode adicionar um alias ao seu .profile por conveniência.
fonte
Para um banco de dados de teste descartável rápido, você pode executar o servidor em primeiro plano.
Inicialize um novo banco de dados postgres em um novo diretório
Inicie o servidor em primeiro plano (ctrl-C para parar o servidor)
Em outra sessão do shell, conecte-se ao servidor
fonte
Eu tenho o mesmo problema e execute todas as atualizações desde o primeiro post. Mas depois de verificar o arquivo de log:
Eu vejo a verdadeira causa:
Após alterar a permissão neste diretório
O servidor postgres foi iniciado.
Sempre verifique o arquivo de log.
fonte
O PostgreSQL está integrado no Server.app disponível na App Store no Mountain Lion. Isso significa que ele já está configurado e você só precisa iniciá-lo e criar usuários e bancos de dados.
Gorjeta : Não comece definindo $ PGDATA e assim por diante, considere os locais dos arquivos como estão.
Você teria este arquivo: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
Para iniciar:
Processo iniciado com argumentos:
/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D / Library / Server / PostgreSQL / Data -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = em -c log_directory = / Library / Logs / PostgreSQL -c log_filename = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = em -c log_statement = ddl -c logging_collector = em -c unix_socket_directory = / private / var / pgsql_socket -c unix_socket_group =
Você pode sudo:
Ou conecte-se:
Você pode encontrar o diretório de dados, versão, status de execução e assim por diante com
fonte
Variação nesta resposta: https://stackoverflow.com/a/13103603/2394728
fonte
Para fins de desenvolvimento, uma das maneiras mais simples é instalar o Postgres.app no site oficial . Pode ser iniciado / parado na pasta Aplicativos ou usando os seguintes comandos no terminal:
fonte
killall
provavelmente não é a melhor maneira de parar um banco de dados.fonte
Se você instalou usando o brew, o comando abaixo deve ser suficiente.
E isso às vezes pode não funcionar, nesse caso, abaixo de dois comandos definitivamente devem funcionar
fonte
nenhuma das respostas acima resolveu o problema para mim, apesar de receber as mesmas mensagens de erro. Consegui colocar minha instância em funcionamento excluindo o arquivo postmaster.pid existente que estava bloqueado e não permitia conexões.
fonte
Para macports, basta usar o comando load / unload e o nome da porta do servidor em execução:
para que você não precise se lembrar de onde o
/Library/LaunchDaemons/org.macports.postgresql96.plist
arquivo está localizadofonte
https://hub.docker.com/_/postgres
fonte
Se você instalou o Postgres usando o instalador do EnterpriseDB, o que o @Kenial sugeriu é o caminho a percorrer.
fonte
que funcionou para mim (macOS 10.13)
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
ou primeiro
cd /Library/PostgreSQL/9.6/bin/
fonte
$ brew upgrade postgres
consertou para mim.
Isso, é claro, atualizará a versão do postgres e atualizará / instalará quaisquer dependências.
fonte
Para Mac / OSX, gosto muito do LaunchRocket para este e outros serviços de segundo plano que usei no desenvolvimento.
https://github.com/jimbojsb/launchrocket
Este site possui boas instruções de instalação: http://macappstore.org/launchrocket/
Isso fornece uma boa tela nas Preferências do sistema, que permite iniciar, reiniciar, root, iniciar no login.
fonte
Isso funcionou para mim todas as vezes, inspirado por Craig Ringer:
proctools inclui pkill. Se você não tiver o Brew: https://brew.sh/
fonte
Por uma questão de integridade: verifique se você está dentro de uma instância
Tmux
ouScreen
, a inicialização não funcionará a partir daí.De: /superuser/879640/error- while - trying - to - start - postgres - installed-via - homebrew - operation - not - permi / 898585
Isso resolveu para mim.
fonte
Há alguns casos extremos que talvez sejam úteis para alguém:
Existe a opção de você ter o postgres.pid preenchido com algum PID. Mas se você reiniciar sua máquina e antes que o postgress volte novamente, algum outro processo executará esse PID. Se isso acontecer, o status pg_ctl e o serviço de distribuição perguntado sobre o status do postgres informarão que ele está ativo. Apenas ps aux | grep e verifique se é realmente postgress
fonte
Homebrew é o caminho !!
Para iniciar o serviço:
Para listar:
para parar o serviço .:
fonte
Se você não o instalou com o brew e diretamente do pacote mac, isso funcionou para mim no PostgreSQL 12 ao usar todos os locais, variáveis etc.
fonte
Eu estava enfrentando o mesmo problema. Tentei todas essas soluções, mas nenhuma funcionou.
Finalmente consegui fazê-lo funcionar alterando o HOST do postgres nas configurações do Django de
localhost
para127.0.0.1
.Saúde, se ajudar.
fonte