Instalei com êxito 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 funcionado 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 o seguinte:
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 em execução 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 / 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, foram perfeitas ... não faço ideia do porquê dessa máquina host não estar passando ...
fonte
/var/run/postgresql
diretório? Em um estágio após a instalação bem-sucedida, essa pasta estava ausente na minha máquina. O que a configuração diz sobre qual diretório deve estar usando?postgresql.conf
no diretório de configuração, que de acordo com acima, é/etc/postgresql/9.3/main
. Você também deve procurar nos arquivos de log, provavelmente em/var/log/postgresql
.Respostas:
Minhas configurações de localidade não foram definidas 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 mostrou 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 o processo de instalação tentar criar um cluster no momento da instalação, mas devido às localizações incorretas, isso não foi feito. Portanto, temos que refazer esta etapa executando:
(Para a versão 9.3 do PostgreSQL)
Após essa etapa, o PostgreSQL inicia sem problemas via
fonte
pg_createcluster
diz-lhe que o cluster já existe você precisa deixá-la primeiro (isto irá apagar todos os dados nele, por isso verifique se você tem um backup):pg_dropcluster 9.3 main
.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 tendo um problema.
Meu problema com o 9.3 no Ubuntu está relacionado ao diretório dir de soquete ser um diretório transitório em / run. Basicamente, o script init.d deve cuidar da criação do diretório dir no / run / postgresql, se ele não existir durante a ação de inicialização. Esse sempre será o estado das coisas após uma reinicialização.
O problema é, no entanto, 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 inicial crie o diretório do soquete.
Ainda 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 start 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 dir:
Postarei uma atualização se a causa raiz ficar clara para mim, porque esse claramente não pode ser o comportamento esperado.
TERMO ADITIVO:
Eu acho que a razão pela qual eu estava enfrentando esse problema é porque 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 alternar para unix_socket_directories. Desde que defini um valor para unix_socket_directories, não tive nenhum problema com o servidor iniciando.
fonte
Eu tive vários problemas com o arquivo sockets, no seu caso /var/run/postgresql/.s.PGSQL.5432
verifique se o diretório / var / run / postgresql existe e é gravável antes de iniciar o postgresql para obter mais informações, consulte esta discussão .
Além disso, ao conectar use -h flag:
e veja se isso resolve.
fonte
Isso parece corrigir o problema no Ubuntu:
Edite postgresql.conf:
Agora faça
service postgresql start
fonte
Eu sou novo no PSQL, mas resolvi o problema editando o start.conf. Eu havia comentado a configuração "auto" para gerenciar o servidor manualmente, mas ele precisa de um valor: automático, manual ou desativado.
EGD.
fonte
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
fonte
Todos,
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!
fonte
/etc/postgresql/9.3/main/postgresql.conf