O serviço initg do PostgreSQL não funciona

7

Eu instalei o PostgreSQL 9.1.2 no meu fedora 16 em um método semelhante ao mencionado aqui , e testei, o que significa que minha instalação está funcionando bem.

Mas quando faço isso: service postgresql initdb ou mesmo service postgresql-9.0 initdb recebo o erro:

Redirecting to /bin/systemctl  initdb postgresql.service
Unknown operation initdb

E por causa disso, não consigo iniciar o pgAdmin3 também.

O que estou perdendo?

    
por c0da 15.01.2012 / 10:11

4 respostas

6

Em sistemas nos quais o postgres foi convertido para usar uma unidade systemd nativa, você precisa usar postgresql-setup para itens como initdb . Então o que você quer é:

postgresql-setup initdb
    
por 15.01.2012 / 11:37
3

Execute o comando "su-postgres -c ..." como raiz

Encontrei a resposta aqui: link

Description of problem: After initial install of a postgresql server rpm, you are left with an unstartable service until you run the following command as root

su - postgres -c "initdb -D /var/lib/pgsql/data"

Version-Release number of selected component (if applicable):

[root@oscar]# rpm -q postgresql-server postgresql-server-9.1.2-1.fc16.x86_64

How reproducible: Always

História de fundo

Vários lugares me instruíram a usar este comando para o Fedora 16, em vez de seguir as instruções anteriores (novo comando: su-postgres -c "PGDATA = / var / lib / pgsql / data initdb"), mas ao ver ' su 'na frente do que, eu assumi que iria me mudar para root quando eu corri o comando. Ele continuou me pedindo uma senha, mas nada estava funcionando.

Eu tentei o root passwd, meu próprio (como se sudo'ing), "postgres" e "pgsql" no caso de eu estar de alguma forma supostamente fazendo isso como o usuário postgres, mesmo deixando a senha em branco. Eu tentei su'ing para root e, em seguida, executando o comando sem o inicial 'su -' (começando com "postgres-c ..."), mas isso também foi um erro, dizendo-me que:

"The server must be started under an unprivileged user ID to prevent possible system security compromise. See the documentation for more information on how to properly start the server."

Finalmente, eu tentei executar o comando completo "su-postgres -c ..." como root, mas ainda usando o "su", e wow- funcionou. Agora o serviço é iniciado. Obrigado Redhat bug tracking!

Resumo

su para root e, em seguida, insira:

su - postgres -c "PGDATA=/var/lib/pgsql/data initdb"

    
por 15.02.2012 / 18:51
2

Você precisa iniciar o serviço postgresql usando o comando:

service postgresql start

A ferramenta initdb deve ser usada somente quando você precisar inicializar o diretório de dados do servidor de banco de dados, e isso deve ser feito automaticamente quando você instalar o servidor postgresql usando um gerenciador de pacotes como yum on centos ou apt-get no Ubuntu.

Você pode usá-lo conforme indicado no link fornecido como:

initdb -D /usr/local/pgsql/data
    
por 15.01.2012 / 10:26
0

Isso está respondendo um pouco tarde, mas pode ser útil para alguém lá fora ... No Fedora 18, com o postgresql 9.2, acabei tendo que adicionar /usr/pgsql-9.2/bin ao meu PATH no meu shell, e de lá eu tive que correr:

postgresql92-setup initdb

para obter os arquivos de configuração e tudo mais em /var/lib/pgsql/9.2/data. Espero que seja útil para alguém lá fora!

    
por 04.03.2013 / 18:30