Eu instalei com sucesso o PostgreSQL 9.3 a partir do repositório APT em 2 VMs executando o Ubuntu 12.04 e 13.04... no entanto, não consigo instalá-lo corretamente na minha máquina host executando o Ubuntu 12.04.
A instalação (desta vez) parece ter corrido bem, mas talvez haja um erro que não estou entendendo:
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ...
Creating new cluster 9.3/main ...
config /etc/postgresql/9.3/main
data /var/lib/postgresql/9.3/main
locale en_US.UTF-8
port 5432
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
Então, tento me adicionar como usuário do PostgreSQL, mas recebo isso:
createuser: could not connect to database postgres: 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"?
Não consigo ver o PostgreSQL rodando no monitor do sistema e não há nenhum arquivo na pasta /var/run/postgresql/...completamente vazio.
EDIT: Nas VMs, há um arquivo em /var/run/postgresql/ chamado 9.3-main.pid
Não há nada no arquivo de log da máquina host localizado em /var/log/postgresql
Então... o que está acontecendo aqui que não está acontecendo nas minhas VMs? Como eu disse, as outras instalações nas VMs, incluindo PostGIS e PGAdmin, vieram perfeitas...
Minhas configurações de localidade não foram configuradas corretamente quando o PostgreSQL foi instalado. Limpar e reinstalar não ajudou. Eu segui as instruções aqui e isso fez o truque para mim.
Partes essenciais das informações vinculadas reproduzidas abaixo:
O problema se apresentou da seguinte maneira:
O primeiro foi muito fácil de resolver executando:
...e escolhendo os locais preferidos.
Mas depois disso o PostgreSQL ainda se recusou a iniciar. Isso se deve ao fato de que o processo de instalação tentou criar um cluster no momento da instalação, mas devido aos locais incorretos, isso não foi feito. Então, temos que refazer esta etapa executando:
(Para a versão 9.3 do PostgreSQL)
Após essa etapa, o PostgreSQL inicia perfeitamente via
Espero que você já tenha resolvido esse problema, mas estou enfrentando um problema semelhante que parece ter uma fonte diferente, e talvez minha experiência ajude se você ainda estiver com problemas.
Meu problema com o 9.3 no Ubuntu está relacionado ao diretório do soquete ser um diretório transitório em /run. Basicamente, o script init.d deve cuidar da criação do diretório do soquete em /run/postgresql se ele não existir durante a ação de inicialização. Este sempre será o estado das coisas após uma reinicialização.
O problema é, entretanto, que o script init.d será encerrado antes de executar a ação start se o diretório do soquete não existir. Isso ocorre porque a chamada para pg_lsclusters falhará sem o diretório do soquete, o que, por sua vez, impede que a ação de inÃcio crie o diretório do soquete.
Eu não descobri qual é a melhor solução, mas se eu realocar a lógica para criar o diretório do soquete da ação inicial para antes da chamada para pg_lsclusters, posso iniciar o servidor após a reinicialização sem problemas.
Aqui está a parte da ação inicial que lida com a criação do diretório do soquete:
Postarei uma atualização se a causa raiz disso ficar clara para mim, porque isso claramente não pode ser o comportamento esperado.
TERMO ADITIVO:
Acho que a razão pela qual eu estava enfrentando esse problema é porque eu não tinha um bom valor configurado para unix_socket_directories . No 9.2, essa opção de configuração costumava ser unix_socket_directory, que eu removi em vez de mudar para unix_socket_directories. Desde que defini um valor para unix_socket_directories, não tive nenhum problema com a inicialização do servidor.
Já tive vários problemas com o arquivo sockets, no seu caso /var/run/postgresql/.s.PGSQL.5432
certifique-se de que o diretório /var/run/postgresql exista e seja gravável antes de iniciar o postgresql para mais informações veja esta discussão .
também, ao conectar, use o sinalizador -h:
e veja se resolve.
Isso parece corrigir o problema no Ubuntu:
Edite postgresql.conf:
Agora faça
service postgresql start
Sou novo em PSQL mas resolvi o problema editando start.conf tinha comentado a configuração "auto" para gerenciar o servidor manualmente, mas precisa de um valor: auto, manual ou disabled.
EGD.
Do meu lado, o script de inicialização está incorreto. Os arquivos de configuração estão instalados em /etc/postgresql/9.3/main mas o script /usr/share/postgresql-common/init.d-functions está pesquisando em
Substitua esta linha por
Tudo,
depois de algumas escavações, encontrei (a) solução aqui:
http://ubuntuforums.org/showthread.php?t=869080
Que continha estas instruções:
Execute no terminal:
Agora meu servidor está funcionando!!!
EDIT : após uma reinicialização, o servidor ainda não está em execução ...
Quaisquer pensamentos sobre por que eu precisava executar isso são apreciados!