Instalação do gestor de base de dados Postgresql com PostGIS

Da GeoBox

Índice

Instalação do Postgresql

sudo apt-get install postgresql postgresql-contrib

Atribuir uma senha à conta postgres da base de dados:

sudo su postgres -c psql template1
postgres=# ALTER USER postgres WITH PASSWORD 'geobox';
postgres=# \q

Criar um novo utilizador geobox da base de dados, com a senha geobox:

$ sudo su postgres -c "createuser -P"
Digite o nome da role a ser adicionada: geobox
Digite a senha para a nova role: geobox
Digite-a novamente: geobox
A nova role poderá criar um super-usuário? (s/n) s
$

Tornar o Postgresql acessível na rede

Acrecentar uma linha:

listen_addresses = '*'

e descomentar a linha:

password_encryption = on

em postgresql.conf.

No ficheiro pg_hba.conf, acrecentar uma linha, antes das outras linhas começadas por host:

host all all 0.0.0.0/0 md5

e reinicializar o serviço.
sudo gvim /etc/postgresql/8.4/main/postgresql.conf
sudo gvim /etc/postgresql/8.4/main/pg_hba.conf
sudo service postgresql-8.4 restart

Instalação do pgAdmin III

sudo apt-get install pgadmin3 pgadmin3-data

Acrescentar algumas funcionalidades usadas pelo pgAdmin

$ sudo su postgres -c psql </usr/share/postgresql/8.4/contrib/adminpack.sql

Ligação inicial com pgAdmin III

Crie uma ligação ao servidor local Postgresql

Instalação do PostGIS 1.5

sudo apt-get install postgis postgresql-8.4-postgis

Criação de uma template_postgis

NOTA: NÃO É NECESSÁRIO CRIAR A TEMPLATE. É criada na instalação dos pacotes Postgis.

Esta template_postgis facilita depois a criação de base de dados geográficas. A template é a mesma coisa que uma base de dados normal, mas é marcada como template para não ser removida ou alterada inadvertidamente.

sudo su - postgres
createdb template_postgis
createlang plpgsql template_postgis
cd /usr/share/postgresql/8.4/contrib/ (ou /usr/share/postgresql/8.4/contrib/postgis-1.5)
psql -d template_postgis -f postgis.sql
psql -d template_postgis -f spatial_ref_sys.sql
psql template1
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template_postgis';
\c template_postgis
GRANT ALL ON geometry_columns TO PUBLIC;
GRANT ALL ON spatial_ref_sys TO PUBLIC;
VACUUM FREEZE;
\q
exit

Criação de uma template_postgis com pt_PT.UTF-8

sudo su - postgres
createdb template_postgis_pt --locale=pt_PT.UTF-8 -e UTF-8 -T template0
createlang plpgsql template_postgis_pt
cd /usr/share/postgresql/8.4/contrib/ (ou /usr/share/postgresql/8.4/contrib/postgis-1.5) (ou cd /usr/share/postgresql/9.1/contrib/postgis-1.5/)
psql -d template_postgis_pt -f postgis.sql
psql -d template_postgis_pt -f spatial_ref_sys.sql
psql template1
UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template_postgis_pt';
\c template_postgis_pt
GRANT ALL ON geometry_columns TO PUBLIC;
GRANT ALL ON spatial_ref_sys TO PUBLIC;
VACUUM FREEZE;
\q
exit

Criação da base de dados geotuga

Depois de criada a template_postgis, para se criar uma nova base de dados, na linha de comandos, faz-se:

sudo su - postgres
createdb -O geobox -T template_postgis geotuga
exit

Carregar dados já preparados, na geotuga

sudo su - postgres
cd /tmp
wget http://dl.dropbox.com/u/5489125/mcdonalds_EPSG_3763.backup
pg_restore --host localhost --port 5432 --username geobox --dbname geotuga --verbose "mcdonalds_EPSG_3763.backup"
(senha geobox)
exit

Depois de inseridos os dados, deve ser preenchida a tabela geometry_columns.

psql -U geobox -d geotuga -W -h localhost -c "insert into geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,"type") values ('', 'public', 'mcdonald', 'the_geom', 2, 3763, 'POINT');"
(senha geobox)

Interface de administração web para o Postgresql

sudo apt-get install phppgadmin
http://localhost/phppgadmin/

Configuração do phppgadmin

Trocar

allow from 127.0.0.0/255.0.0.0 ::1/128
# allow from all

por

# allow from 127.0.0.0/255.0.0.0 ::1/128
allow from all

em

/etc/phppgadmin/apache.conf

Reiniciar o servidor Apache:

sudo apache2ctl graceful


Anterior: Instalação e configuração do servidor Apache Seguinte: Instalação do gestor de base de dados Postgresql 9.x com PostGIS

Ferramentas pessoais