Sunday 29 March 2009

Configurando PostgreSQL

PostgreSQL


A minha idéia é usar o Wicket para criar um banco de dados para registrar os laptops que configuramos para os usuários.


A escolha pelo PostgreSQL é por duas razões:1) é o banco de dados usado pelo OpenNMS, então parte do trabalho já está feita e não faria sentido ter dois servidores, o outro seria MySQL. 2) Desde que o MySQL foi adquirido pela Sun, e o mecanismo InnoDB pela Oracle, acho que MySQL está ficando um cria do Frankenstein*. E para piorar as coisas a IBM está em vias de comprar a Sun.

Servidor

O servidor PostgreSQL vai rodar numa máquina virtual onde foi instalado Fedora 10. A idéia de usar uma máquina virtual (VM) é de não poluir meu sistema principal e se por algum motivo eu mudasse de idéia, seria só reinstalar o Fedora ou criar outra máquina virtual.

A instalação do servidor foi feita durante a instalação do Fedora. Na escolha dos pacotes, marquei o grupo "Postgresql". Depois da atualização do sistema, a versão do PostgreSQL é postgresql-8.3.7-1.

O primeiro passo é criar uma role para acessar o banco de dados. Uma role é como uma conta de usuário do sistema, e a palavra usuário vai ser usada nos dois contextos e espero que fique claro quando se trata do usuário do sistema ou do usuário do banco de dados, mas como o usuário do sistema já foi criado (afinal ele já esta logado), pode-se assumir que estou falando do banco de dados.

Como root mudar para postgres. Essa conta foi criada durante a instalação do servidor.

# su - postgres
$ createuser mgarcia

Eu (mgarcia) escolhi que posso criar outros usuarios e banco de dados, mas não sou super user. E também não coloquei senha.

Como teste, no servidor e usando a conta mgarcia (sistema), criar o meu banco de dados:

$ createdb mydb

Se tudo correr bem, não há nenhum mensagem, volta-se ao prompt do sistema e o banco de dados foi criado. Em seguida pode-se acessar o banco de dados:


$ psql mydb

E novamente, se tudo correu bem, aparece a mesagem e o prompt do PostgreSQL:

Welcome to psql 8.3.6 (server 8.3.7)...
(...)
mydb=>

Acesso remoto

O objetivo é acessar o servidor de outra máquina e para isso é necessário configurar o servidor para aceitar conexões dos clientes.

A configuração é feita editando-se dois arquivos:pg_hba.conf e postgresql.conf. Ambos ficam no diretório /var/lib/pgsql/data.

No arquivo pg_hba.conf deve-se adicionar uma entrada para a rede onde estão os clientes:


host all all 192.168.184.0/24 trust

E para o caso do postgresql.conf, para permitir a conexão adicionar 2 linhas:


listen_addresses = '*'
port = 5432

Com isso é possível acessar o servidor remotamente. Como última etapa, adicionar a variável de ambiente PGHOST ao arquivo de inicialização, que no caso do bash, é .bashrc.


PGHOST=fedora
export PGHOST

Isso encerra essa parte. O próximo passo é criar um banco de dados e acessa-lo usando Java.



* Frankenstein é o cientista, a criatura não tem nome e isso é uma das suas mágoas com o doutor.

No comments: