InstalandoPostgresql

Instalando Postgresql 8.0 e aplicando configuração inicial

Introdução

Após uma breve busca no google por documentação sobre Postgresql e o Ubuntu em nosso idioma, percebi que há poucos artigos em pt_BR, então decidi escrever esse pequeno howto para os que estão iniciando não percam o fio da meada e saibam onde obter informações. Postgresql é um ótimo SGBD (Sistema Gerenciador de Banco de Dados). Estou gostando muito de trabalhar com ele e pretendo futuramente escrever artigos técnicos sobre Performance e Clustering, mas por enquanto este howto tem caráter explanatório e educativo até porque quem disse que para começar a estudar SGBD tem que ser com SGBD de pequeno porte ? O postgresql tem histórico e proveniência acadêmica. É uma boa começar com o postgresql. Wink ;-)

Recomendo a leitura deste artigo introdutório sobre esse excelente SGBD por Diogo de Oliveira Biazus.

Verificações

Para começar a instalar efetivamente o Postgresql devemos antes fazer algumas verificações.

  • Tenho privilégios de root ?!

Para confirmar:

$cat /etc/sudoers | grep 'nome_do_usuario'

Obs: Lembrando que se você é o principal usuário do sistema, aquele que é cadastrado no ato da instalação do sistema Ubuntu, pela política do Ubuntu você é um usuário que está no grupo admin do sistema e por padrão está no arquivo de sudoers só que não explicitamente, estará uma diretiva que aplica ao grupo e como você faz parte do grupo.

Estará exatamente assim:

# Members of the admin group may gain root privileges
%admin  ALL=(ALL) ALL

E para confirmar se você está no grupo admin:

$cat /etc/group | grep admin

Saída:

lpadmin:x:107:daniel
admin:x:109:daniel,bruno

Sinopse: nomedogrupo:senha:GID:usuarios_que_pertencem_ao_grupo

Obs: Os usuários que pertecem ao grupo são separados por vírgula.

Caso não esteja no grupo admin ou não tenha acesso ao root do sistema, terá que pedir permissão para quem administra o sistema ou tenha a senha do root.

Caso não esteja no grupo admin mas, tenha acesso à conta de root, é fácil para adicioná-lo ao grupo, basta como root executar no Terminal o seguinte comando:

#adduser `nome_usuario` admin

e pode se deslogar de root e trabalhar normalmente utilizando o sudo, o que é preferível.

Feito essas verificações, podemos seguir adiante. Wink ;-)

Instalando

Existe o pacote postgresql-8.0 nos repositórios oficiais do Ubuntu Breezy Badger, se você quiser a versão 8.1 com novos recursos, os pacotes já se encontram nos repositórios oficiais do Ubuntu Dapper Drake que é a atual versão do Ubuntu lançada no em junho de 2006, mas como estamos falando de banco de dados, caso você não queira migrar para o Dapper, poderá permanecer na versão Breezy Badger ( 5.10 ) estável.Estamos usando Brezzy para este howto, mas creio eu que este howto sirva também para o Dapper Drake, pois os comandos são bem genéricos e independente de versões.

Portanto:

$sudo apt-get install postgresql-8.0

Após executar o comando acima serão instalados outros pacotes também, não se preocupe pois ele está satisfazendo as depêndencias do pacote postgresql-8.0.O que são dependências? São simplesmente pacotes(programas ou biblioteca de funções (lib) necessária ao postgresql para funcionar e/ou para manter adequadamente a integridade do sistema.

Aplicando configuração inicial

Entendendo o conceito de processo

Os programas no Linux são executados como processos (daemon), os processos necessitam de um usuário no sistema para desencadear 1 ou mais processos. Para manter a organização dos usuários e dos processos dentre os existentes, os softwares criam seu próprio usuário no sistema. O postgresql necessita do usuário "postgres" para as tarefas administrativas e inicialmente criará outro usuário para você trabalhar no postgresql, eu diria a muito alto nível até que o usuário postgres é o root do postgresql.

Se você olhou a Documentação oficial do Postgresql, na seção de instalação você deve criar o usuário Postgres e depois atribuir as devidas permissões, quando instalamos através do apt-get esse processo de criação e de atribuição das permissões passa de forma transparente, portanto não vemos essa etapa do processo mas ela existe.

Recomendo a leitura deste artigo sobre processos: http://www.infowester.com/linprocessos.php

Confirmando a criação do usuário '''postgres'''

No processo de instalação do postgresql é criado ou pelo menos deve ser criado o usuário postgres, para confirmar:

Execute no terminal:

$cat /etc/passwd | grep postgres

O resultado é algo parecido:

postgres:x:118:118:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash

Em caso negativo, se não aparecer algo parecido com o que há acima descrito, você deve se preocupar pois, o usuário para utilizar o postgresql inicialmente é o postgres e o mesmo parece não ter sido criado, a instalação não deve ter ocorrido corretamente ou, foi interrompida em alguma etapa, abaixo alguns comandos para resolver este tipo de problema:

Para confirmar que não faltou baixar nenhum pacote,

Execute no terminal:

$sudo apt-get -f install

Para confirmar que passou pela etapa de configuração prévia do pacote, caso já tenha sido configurado com êxito, ele emitirá um erro confirmando que já passou pela configuração prévia corretamente.

Execute no terminal:

$sudo dpkg --configure postgresql-8.0

Para verificar se o postgresql está sendo carregado corretamente *pouco provável tendo em vista que o usuário não está criado* mas, para descarrego de consciência.

Execute:

$sudo dpkg-reconfigure postgresql-8.0

Caso não obtenha êxito, desinstale removendo todos os arquivos de configuração e instale novamente e repita o processo de confirmação de usuário.

$sudo aptitude purge postgresql-8.0 && apt-get install postgresql-8.0

Criando o seu primeiro banco de dados

Revisando:

  • Verificação de privilégios
  • Instalação do postgresql
  • Checagem da instalação e do usuário

Para começar efetivamente a brincar com o Postgresql, você deve criar um usuário e um banco de dados onde será o playground do usuário, é melhor assim, pois não brincará com o usuário postgres e com os bancos internos do sistema. Portanto você se sente mais confortável !. Smile :)

Criando o banco

Para criar o banco de dados,

Execute no terminal:

$sudo su - postgres createdb *nome_do_banco*

Saída:

CREATE DATABASE

O banco foi criado com sucesso!... próximo passo.

Criando o usuário

Para criar o usuario,

Execute no terminal:

$sudo su - postgres createuser *nome_do_usuario*

Saída:

Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y

Ele faz algumas perguntas para a criação do usuário como foi possível perceber, a primeira pergunta é: Deve ser permitido ao novo usuário criar bancos de dados? , a segunda é: Deve ser permitido ao novo usuário criar mais novos usuários ? .

É uma boa idéia você aceitar as duas perguntas pois assim dificilmente, ou para situações muito específicas, precisará utilizar o usuário postgres. Wink ;-)

Trocando a senha

Você percebeu que não configurou senha nenhuma para o novo usuário ? estranho, não ?pois bem, vamos lá colocar esta senha para que você possa efetivamente logar no banco.

Primeiro de tudo você deve entrar no modo interativo do postgresql.

$sudo su - postgres psql *nome_do_banco_anteriormente_criado*

Saída do comando:

Welcome to psql 8.0.3, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# 

Dentro do terminal interativo do postgresql:

postgres=# ALTER USER `nome_do_usuario` PASSWORD ' nova_senha ';

Atribuindo permissão do usuário ao banco

Aproveitando que você já está logado no terminal interativo, trocamos logo o administrador do banco de dados criado anteriormente para o usuário que criamos e acabamos de trocar a senha.

postgres=# ALTER DATABASE `nome_do_banco_criado_anteriormente` OWNER TO `nome_do_usuario_criado_anteriormente`;

Instalando e utilizando uma ferramenta DBA ( Data Base Administrator )

Depois da troca de owner (administrador) do banco de dados, que tal instalarmos uma ferramenta para administrar o postgresql ? para facilitar esse processo de criação usuários, bancos de dados, tablespaces e ver os recursos maravilhosos do postgresql.

Existem várias ferramentas para administração do postgresql.

Abaixo segui algumas ferramentas que se encontram nos repositórios do Ubuntu,


CategoryDocumentacao

InstalandoPostgresql (last edited 2011-09-19 23:18:49 by localhost)