PostgreSQL 9.2.4 (Windows 7) - O serviço não inicia, “não foi possível carregar o pg_hba.conf”

1

Estou tentando executar o Postgres 9.2.4 como um serviço no Windows 7. Depois de instalar o postgres, o serviço estava funcionando bem. No entanto, depois de configurar o postgres como um servidor para outro programa, o serviço parou de ser executado. Quando tento iniciar o serviço agora, recebo uma mensagem dizendo:

"The postgresql-x64-9.2 - PostgreSQL Server 9.2 service on Local Computer started and then stopped. Some services stop automatically if they are not in use by other services or programs."

Quando tento executar o programa que deve usar o servidor de banco de dados, recebo este erro:

"A problem was encountered while attempting to log into or create the production database. Details: Could not connect to the server; Could not connect to remote socket. The application must now close"

Também encontrei esse erro uma vez ao abrir o mesmo programa:

"A problem was encountered while attempting to log into or create the production database. Details: FATAL: could not load pg_hba.conf The application must now close."

Eu tentei executar o serviço conectado como uma conta do sistema local, bem como minha própria conta (nas propriedades do serviço postgres) sem sucesso. Eu também tentei reiniciar meu computador. Depois de um monte de solução de problemas on-line, aprendi que uma coisa boa para verificar é o arquivo pg_log. Aqui está o conteúdo da última entrada do pg_log:

2013-05-29 14:59:45 MDT LOG:  database system was interrupted; last known up at 2013-05-29 14:58:01 MDT
2013-05-29 14:59:45 MDT LOG:  database system was not properly shut down; automatic recovery in progress
2013-05-29 14:59:45 MDT LOG:  record with zero length at 0/175BB98
2013-05-29 14:59:45 MDT LOG:  redo is not required
2013-05-29 14:59:45 MDT LOG:  database system is ready to accept connections
2013-05-29 14:59:45 MDT LOG:  autovacuum launcher started
2013-05-29 15:07:00 MDT LOG:  local connections are not supported by this build
2013-05-29 15:07:00 MDT CONTEXT:  line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf"
2013-05-29 15:07:00 MDT FATAL:  could not load pg_hba.conf
2013-05-29 15:07:00 MDT LOG:  local connections are not supported by this build
2013-05-29 15:07:00 MDT CONTEXT:  line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf"
2013-05-29 15:07:00 MDT FATAL:  could not load pg_hba.conf
2013-05-29 15:09:03 MDT LOG:  received fast shutdown request
2013-05-29 15:09:03 MDT LOG:  aborting any active transactions
2013-05-29 15:09:03 MDT LOG:  autovacuum launcher shutting down
2013-05-29 15:09:03 MDT LOG:  shutting down
2013-05-29 15:09:03 MDT LOG:  database system is shut down

Parece haver problemas com o arquivo pg_hba.conf, que é assim:

local all all trust
host all all 127.0.0.1 255.255.255.255 trust
host all all 0.0.0.0 0.0.0.0 trust

Como muitas sugestões on-line, eu tentei editar a linha superior para um número de diferentes alternativas (host all all trust / host todos 127.0.0.1/32 trust / host todos 192.168.0.100/24 confiança, etc.). Isso fazia sentido para mim, já que o arquivo de log dizia que as conexões locais não são suportadas pelo postgres e também apontavam para essa linha. No entanto, nenhuma das minhas alterações teve qualquer efeito. Tentei reiniciar meu computador após cada alteração, mas nada fez diferença.

Quando eu procurei por exemplos de como um arquivo pg_hba.conf normalmente se parece, os exemplos pareciam um pouco diferentes do meu arquivo. Notei que no arquivo de programa do PostgreSQL, além do pg_hba.conf, havia também um arquivo "20130529-150444-old-pg_hba.conf" que se parecia muito mais com os exemplos que eu encontrava online. Este arquivo tem várias linhas de comentários antes destas últimas linhas:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

Eu esperava que esse fosse o arquivo pg_hba.conf original e que, se eu substituísse o novo arquivo pelo conteúdo do antigo, o postgres voltaria a funcionar. Não teve essa sorte. Espero que mais arquivos de erro sejam registrados em pg_log para ver se o erro declarado anteriormente desapareceu ou mudou para outra coisa, mas nenhum outro arquivo foi registrado.

Estou resolvendo problemas on-line há alguns dias e nada que eu tenha encontrado funcionou. Desculpe por ter uma pergunta tão longa, mas eu queria ser minucioso e incluir todas as informações relevantes. Eu apreciaria se alguém pudesse lançar alguma luz sobre este problema ou oferecer sugestões.

    
por user2437443 31.05.2013 / 01:10

1 resposta

0

  1. Você executou initdb antes?

    Se você não tiver, isso causará o problema. Depois de executar o comando initdb , você verá um diretório data , que deve conter um default pg_hba.conf .

  2. Em seguida, você precisa substituir o default pg_hba.conf pelo seu customized pg_hba.conf .

  3. Você precisa definir o $ PGDATA. No CentOS, ele está localizado em /etc/sysconfig/pgsql/postgresql .

por 02.06.2013 / 18:39