Instalando o PostgreSQL e pgAdmin3 no Ubuntu
Dica publicada em Linux / Introdução
Instalando o PostgreSQL e pgAdmin3 no Ubuntu
Vamos iniciando a instalação com os seguintes comandos:
# apt-get install postgresql pgadmin3
Instalação feita, o próximo passo é alterar a senha do usuário postgres:
# su postgres -c psql postgres
ALTER USER postgres WITH PASSWORD 'senha';
\q
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 ideia é disponibilizar o acesso ao banco para receber conexões de outras máquinas, vai ter que alterar dois arquivos no diretório /etc/postgresql/8.3/main: postgresql.conf e pg_hba.conf.
No arquivo postgresql.conf, na linha de configuração listen_addresses, descomente-a removendo o # e troque o localhost por *, deixando a linha assim:
Dessa forma seu PostgreSQL vai "escutar" não só conexões 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 removendo o #, ficando a linha assim:
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 exemplo, quero liberar para todas as máquinas da rede 192.168.0.0, então eu adiciono a seguinte linha:
Feito isso, basta reiniciar o PostgreSQL.
# /etc/init.d/postgresql-8.3 restart
Pronto!
# apt-get install postgresql pgadmin3
Instalação feita, o próximo passo é alterar a senha do usuário postgres:
# su postgres -c psql postgres
ALTER USER postgres WITH PASSWORD 'senha';
\q
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 ideia é disponibilizar o acesso ao banco para receber conexões de outras máquinas, vai ter que alterar dois arquivos no diretório /etc/postgresql/8.3/main: postgresql.conf e pg_hba.conf.
No arquivo postgresql.conf, na linha de configuração listen_addresses, descomente-a removendo o # e troque o localhost por *, deixando a linha assim:
listen_addresses = '*'
Dessa forma seu PostgreSQL vai "escutar" não só conexões 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 removendo o #, ficando a linha assim:
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 exemplo, quero liberar para todas as máquinas da rede 192.168.0.0, então eu adiciono a seguinte linha:
host all all 192.168.0.0 255.255.255.0 md5
Feito isso, basta reiniciar o PostgreSQL.
# /etc/init.d/postgresql-8.3 restart
Pronto!
Onde era para colocar:
ALTER USER postgres WITH PASSWORD 'senha';
Coloquei
ALTER USER <b>gustavo</b> WITH PASSWORD 'senha';
E agora não consigo acessar nenhuma db... Sempre recebo a resposta:
FATAL: role "gustavo" n?o existe
Isso mesmo eu colocando o postgres como usuário no database.yml, ou qualquer outro.
Tentei desinstalar o postgres e instalar de novo, mas continua o mesmo problema. Quando dava su postgres -c psql postgres ele me pedia senha (o que não ocorreu na primeira vez que instalei), e a senha não dava certo, então como root mudei a senha do user postgres, e depois no pgslq com ALTER USER mudei a password do postgres, mas continua o mesmo erro:
FATAL: role "gustavo" n?o existe
Estou começando a conhecer o postgres agora, então ficaria muito grato se alguém puder me ajudar...
Obrigado desde já!
Abraços.