INSTALANDO O POSTGRESQL NO LINUX

Faça o download do instalador da versão Postgresql 8.2.4-1 acessando o endereço: http://gcom.ipad.com.br/postgresql-8.2.4.tar.bz2

Baixe o arquivo postgresql-8.2.4-1.zip.

Por favor, leia o FAQ http://pginstaller.projects.postgresql.org/FAQ_windows.html antes de começar.

Instalação passo a passo

1 Descompacte e compile o arquivo de instalação

$ tar -zvxf postgresql-8.2.4.tar.gz
$ cd postgresql-8.2.4
$ ./configure –prefix=/usr/local/pgsql– without-readline
$ make
# make install
# cp /usr/local/pgsql/bin/* /usr/bin

Compile o pacote do dblink

$ cd /contrib/dblink
$ make
# make install
OBS: /usr/local/pgsql - diretório onde será instalado o PostgreSQL.

2 Crie o usuário Postgres:

# adduser postgres

3 Crie o diretório onde os dados serão armazenados:

# mkdir /usr/local/pgsql/data

4 Dê permissão ao usuário postgres:

# chown postgres data -v

5 Agora efetuaremos o login com o usuário postgres para fazer as devidas configurações e criação da base de dados.

# su - postgres
$ cd /usr/local/pgsql/
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

6 Testaremos se o PostgreSQL está realmente funcionando, digite o comando abaixo:

$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data

Para poder parar o comando acima, execute o famoso CONTROL+C.

7 Agora copiaremos o script de inicialização do PostgreSQL que vem por padrão na sua respectiva pasta.

Basta entrar na pasta onde você baixou o PostgreSQL e dar o seguinte comando:

# cp contrib/start-scripts/linux /etc/init.d/postgresql
# chmod +x /etc/init.d/postgresql

8 Com o comando acima estamos colocando o script de inicialização do postgresql para iniciá-lo, pará-lo e restartá-lo.

Como o PostgreSQL trabalha com sockets podemos ativar o TCP/IP na própria inicialização sem alterar nenhuma configuração dele, bastando apenas editar o arquivo abaixo:

/etc/init.d/postgresql

Como está:

echo -n “Starting PostgreSQL: “ su - $PGUSER -c “$DAEMON -D '$PGDATA' &” »$PGLOG 2>&1

Como deve ficar:

echo -n “Starting PostgreSQL: “ su - $PGUSER -c “$DAEMON -i -D '$PGDATA' &” »$PGLOG 2>&1

OBS: Note que foi acrescentado apenas um -i na linha acima.

Iniciando Postgres:

/etc/init.d/postgresql start

Parando Postgres:

/etc/init.d/postgresql stop

Restartando Postgres:

/etc/init.d/postgresql restart

Verificando status do Postgres:

/etc/init.d/postgresql status

Verificando se o postgres esta rodando:

# netstat -avnp |grep 5432

Resultado seria algo parecido com isso:

tcp 0 0 10.18.0.243:5432 10.18.0.243:49843 ESTABELECIDA5132/postgres: gsan
tcp 0 0 10.18.0.243:5432 10.18.0.243:49842 ESTABELECIDA5131/postgres: gsan
tcp 0 0 10.18.0.243:5432 10.18.0.243:49841 ESTABELECIDA5130/postgres: gsan

9 Altere arquivo o postgres.conf

$ vi /usr/local/pgsql/data/postgres.conf

Mude o parâmetro:

De: listen_addresses = '127.0.0.1'
Para: listen_addresses = '*'

10 Agora verifique a configuração do pg_hba.conf

Verificar se existe a entrada da sua rede local no pg_hba.conf para o acesso ao banco conforme documentação do PostgreSql.

11 Para visualizar as databases existentes:

$ psql -l postgres | postgres | LATIN1
template0 | postgres | LATIN1
template1 | postgres | LATIN1

OBS: Lembrando que para executar o comando psql você não poderá estar como usuário root, deverá usar o usuário criado anteriormente.

12 Crie a pasta indices para armazenar os índices das tabelas:

$ mkdir /usr/local/pgsql/data/indices

13 Conecte com a base de dados postgres:

$ psql postgres

14 Criar os grupos padrão:

postgres=# CREATE ROLE pg_users NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;
postgres=# CREATE ROLE pg_aplic NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;

15 Crie os usuários padrão:

postgres=# CREATE ROLE gsan_admin LOGIN

*ENCRYPTED PASSWORD 'md5e25cb13bee657fd472ea261733d52b12'
NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE;
postgres=# CREATE ROLE gsan_batch LOGIN
ENCRYPTED PASSWORD 'md5a28a39f8784453813c2aa5403da3949d'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT pg_aplic TO gsan_batch;
postgres=# CREATE ROLE gsan_olap LOGIN
ENCRYPTED PASSWORD 'md53a5ee6d07b205e698e22b46cbe086335'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT pg_aplic TO gsan_olap;
postgres=# CREATE ROLE gsan_online LOGIN
ENCRYPTED PASSWORD 'md54e64a47f54d3289600f400a939abcf86'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
GRANT pg_aplic TO gsan_online;**