Instalando e configurando o PostgreSQL 8.3 no Ubuntu

Instalando e configurando o PostgreSQL 8.3 no UbuntuNo meu ambiente de desenvolvimento, eu sempre utilizo dois bancos: o Postgres e o DB2. Basicamente devido ao fato de minha instalação de DB2 ser pesada pois tenho várias configurações de Data Warehouse e um banco muito carregado, o que torna o banco mais pesado para meu simples desktop. Então, para debugar meus softwares, vou com meu postgres levinho mesmo.

Minha idéia aqui é mostrar como instalar e configurar o PostgreSQL 8.3 no Ubuntu 8.04. As configurações são as mesmas para a instalação em Windows, a única diferença obvia é que você irá ter que ir ao site do postgres e baixar o Installer do Windows.

Vamos lá, iniciamos a instalação com o comando:

$ sudo apt-get install postgresql-8.3 postgresql-client-8.3

Recomendo também instalar o pgAdmin, que é uma ferramenta para administrar o postgres:
$ sudo apt-get install pgadmin3 pgadmin3-data

Algo que aconteceu comigo na migração para o Ubuntu 8.04, foi que tive que remover o Postgres 8.2 (apt-get purge postgresql-8.2) para conseguir iniciar o 8.3 corretamente. Se você concluir meus passos aqui e mesmo assim não conseguir conectar no Postgres, recebendo algum erro, provavelmente terá que dar o purge. (talvez com mais tempo de pesquisa eu poderia descobrir qual era o problema… se alguem passar por isso me diga please).

O próximo passo é setar uma senha para o usuário postgres com os seguintes comandos:

sudo su postgres -c psql postgres
ALTER USER postgres WITH PASSWORD ‘password’;
\q

O primeiro comando chama o utilitário psql com o usuário postgres e conecta no postgres especificamente no database postgres.
O segundo comando altera a senha do usuário postgres.
O terceiro comando finaliza o psql.
Note que a palavra password deve ser substituida pela password que você desejar.

Feito a instalação e mudança de senha do usuário postgres, você estará apto a desenvolver um trabalho no seu computador conectando normalmente ao postgres, porém, se a idéia é disponibilizar o acesso ao banco para receber conexões de outras máquinas, você vai ter que alterar dois arquivos para isso. Para isso, vá para o diretório /etc/postgres/8.3/main

Edite o arquivo postgresql.conf

Na linha listen_addresses, troque o localhost por *, ficando a linha assim:

listen_addresses = ‘*’

Dessa forma seu postgres vai “escutar” não só conexoes provenientes da sua própria máquina.

A próxima configuração no mesmo arquivo é habilitar a encriptação de passwords, para fazer isso descomente a linha abaixo simplesmente removendo o # da frente dela:

password_encryption = on

Finalmente a próxima configuração é no arquivo pg_hba.conf. Neste arquivo você consegue restringir o acesso ao seu banco de dados por IP. Normalmente queremos liberar o acesso para todos os IPs em uma faixa, no meu exeplo, quero liberar para todas as máquinas da rede 10.5.2.*, então eu adiciono a seguinte linha no meu pg_hba.conf:

host    all    all    10.5.2.0    255.255.0.0    md5

Feito isso, basta reiniciar o postgres com o comando:

sudo /etc/init.d/postgresql-8.3 restart

Enjoy!

27 Respostas para “Instalando e configurando o PostgreSQL 8.3 no Ubuntu”

  1. mestre kame Disse:

    vlw pega dica juliano!
    Só corrigindo, o diretorio correto que está o arquivo postgresql.conf é

    /etc/postgresql/8.3/main

    abraço

  2. Beto Disse:

    muito bom =D
    me ajudou muito!
    A propósito, sabe onde eu posso conseguir mais informacoes do postgres ? como criar indices, sobre os tipos dos campos? Venho do MySQL e estou me atrapalhando muito com isso :(
    Abraços

  3. julianommartins Disse:

    Oi Beto.
    Acho que o melhor lugar pra se conseguir a documentação é aqui: http://www.postgresql.org/docs/

    Abraços,

    Juliano

  4. beto Disse:

    Grande Juliano,
    Desculpa te incomodar ;) Mas como falei estou iniciando no mundo Postgresql agora. Minha grande dificuldade agora é encontrar uma ferramenta semelhante ao DBDesigner pra modelar o banco Postgresql, vc poderia indicar alguma?

    Novamente, muito obrigado.

  5. julianommartins Disse:

    Opa, sugiro o PGAdmin 3.

    Eu coloquei como instalar lá em cima.

    Abraços.

  6. VIPER Disse:

    vELHO MANDO MUIJTO BM VLWWWWW
    !!!!!!!

  7. Bernardo Disse:

    Caro Juliano,

    Seu tutorial está ótimo…
    Parabéns!!!

    Abraços.

  8. peduardo Disse:

    Muito bom o tutorial,
    sou iniciante no linux, mas consegui configurar o postgres sem dificuldades.

    Parabens pela iniciativa!

  9. POSTMASTER.conf Disse:

    Ola, estou implementando uma grade com o toolkit globus4.07 e no tutorial que peguei, ele pede para que eu modifique o arquivo postamaster.conf que se encontra no seguinte caminho:/var/lib/postgres/postmaster.conf mas nao consigo encontrá-lo.

    Um outro problema é que qdo vou criar o usuario globus com o seguinte comando: su postgres -c “createuser -P globus”
    aparece o seguinte erro:
    createuser: não pôde conectar ao banco de dados postgres: could not connect to server: Arquivo ou diretório inexistente
    Is the server running locally and accepting
    connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.5432″?

    Como posso arrumar esse erro?

  10. Leonardo Disse:

    Só para ajudar :

    o comando para alterar a senha : ALTER USER postgres WITH PASSWORD ‘password’; nao funcionou aqui

    basta trocar esse comando por \password

  11. Wesley Disse:

    Olá, ao tentar criar a senha para o Postgre ocorre a seguinte mensagem:

    Error: You must install at least one postgresql-client- package.
    Já instalei a versão client 8.3 uso Ubuntu8.4.

    Alguma dica?

  12. Luis Scapin Disse:

    Valeu pelo tópico chefe. Me ajudou aqui, valeu mesmo. Abraço.

  13. Bprado Disse:

    Estou com o mesmo problema do POSTMASTER, VEJA:

    $ sudo su postgres -c psql postgres
    psql: could not connect to server: Arquivo ou diretório inexistente
    Is the server running locally and accepting
    connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.5432″?

  14. Ivan Disse:

    Como faço para configurar oo Pg_hba.conf p/ liberar o acesso pra qualquer rede e não somente pra algumas redes como ensina o tutorial.

    Obg!

  15. Wenderson Ferreira Disse:

    Excelente, funcionou belezinha

  16. Jorge Quiterio Disse:

    Muito bem explicado !

    mas tenho um problema… sou um nabo no ubuntu e quando edito o ficheiro “postgresql.config” diz que não tenho permissões para gravar as alterações… e não consigo mexer nas permissões do ficheiro…

    obrigado

  17. julianommartins Disse:

    Opa. Se transforme em root com o comando:

    sudo -i

    digite a senha definida na instalação, e mande bala!

  18. michael Disse:

    show de bola

  19. Bruno Silva Disse:

    Obrigadão tava mesmo a precisar de uma ajuda nisso

    obrigado

  20. Joelias Disse:

    Nus…vlw d+ esse tutorial, a dias que eu estava tentando instalar isso na MERDA do rWindows vista. Agora só com essa ajudinha já funcionou no meu UBUNTU!!
    Vlwsssssssssssss

  21. Robson Disse:

    opa blz

    preciso de uma ajuda na instalação, quando entre com
    sudo su postgres -c psql postgres
    da o seguinte erro
    you must install at least one postgresql-client-<version. package

  22. Furlan Disse:

    cara aqui ta dando esse erro:

    psql: could not connect to server: Arquivo ou diretório inexistente
    Is the server running locally and accepting
    connections on Unix domain socket “/var/run/postgresql/.s.PGSQL.5432″?

    ja procurei em todo lugar e nao consegui achar uma maneira de arrumar isso :( alguem me da uma luz por favor!

  23. samuel_cazelli Disse:

    @Leonardo

    Tenta instalar o pacote postgresql-contrib. Comigo funcionou.

    fonte: http://hocuspokus.net/2008/05/install-postgresql-on-ubuntu-804

  24. Carlos Oliveira Disse:

    Olá!

    Eu preciso de aceder a um banco de dados (pgadmin3) que está a rodar noutro pc de minha casa e não estou a conseguir. o que é que preciso de configurar?

  25. julianommartins Disse:

    Oi Carlos. Tudo indica que falta configurar corretamente o arquivo pg_hba.conf. Tente logar nela localmente para ver se rola, se rola, é o pg_hba.conf mesmo.

  26. Carlos Oliveira Disse:

    Olá! obrigado pela ajuda!
    Depois de uma noite inteira de trabalho consegui descobrir o que se passava! “A ordem que se coloca nos IP no pg_hba.conf é importante…” ou seja agr já consegui com a seguinte alteração:

    # TYPE DATABASE USER CIDR-ADDRESS METHOD

    # IPv4 local connections:
    host all all 127.0.0.1/32 md5
    # IPv6 local connections:
    host all all ::1/128 md5
    host all all 192.168.1.131 md5
    host all all 192.168.1.0 255.255.0.0 md5

    Muito obrigado pela ajuda!
    Espero que este código ajude muita gente:)

  27. Carlos Oliveira Disse:

    o código anterior está errado…
    este é que está certo (sorry!)

    # TYPE DATABASE USER CIDR-ADDRESS METHOD

    # IPv4 local connections:
    host all all 192.168.1.0/24 trust
    host all all 127.0.0.1/32 md5
    # IPv6 local connections:
    host all all 192.168.1.0/24 trust
    host all all ::1/128 md5
    host all all 192.168.1.2 md5

Deixe um comentário