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

Da GeoBox

Índice

Instalação do Postgresql 9.0.1

Atenção Embora o Postgresql 9.0 já seja uma versão estável, na GeoBox mantemos a utilização da versão 8.4.5, dado que algumas aplicações ainda não suportam o Postgresql 9.0. No entanto, ficam aqui estas instruções para quem quiser instalar o Postgresql 9.0.
sudo apt-add-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get install postgresql-9.0 postgresql-contrib-9.0

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.0.0.0 md5

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

Instalação do pgAdmin III

A instalação do pgAdmin III requer as novas versões 1.12.x

Requisitos:

sudo apt-get install libwxbase2.8-0 libwxgtk2.8-0
cd /tmp
wget http://www.varnernet.com/~bryan/files/pgadmin3-data_1.12.0-1_all.deb
wget http://www.varnernet.com/~bryan/files/pgadmin3_1.12.0-1_i386.deb
sudo dpkg -i pgadmin3_1.12.0-1_i386.deb pgadmin3-data_1.12.0-1_all.deb

Nota: Se estiver a usar um kernel de 64 bits, substitua o pacote pgadmin3_1.12.0-1_i386.deb pelo seguinte:

wget http://www.varnernet.com/~bryan/files/pgadmin3_1.12.0-1_amd64.deb
sudo dpkg -i pgadmin3_1.12.0-1_amd64.deb pgadmin3-data_1.12.0-1_all.deb

Acrescentar algumas funcionalidades usadas pelo pgAdmin

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

Ligação inicial com pgAdmin III

Crie uma ligação ao servidor local Postgresql

Instalação do PostGIS 1.5

cd /tmp
sudo apt-get install postgresql-server-dev-9.0 libxml2-dev libproj-dev
sudo apt-get install libgeos-dev
sudo apt-get install imagemagick
sudo apt-get install libgtk2.0-dev
wget http://postgis.refractions.net/download/postgis-1.5.2.tar.gz
tar xvzf postgis-1.5.2.tar.gz
cd postgis-1.5.2
./configure --with-gui --prefix=/usr/local
make
sudo make install

Atenção Os executáveis são instalados em /usr/lib/postgresql/9.0/bin, em vez de /usr/local/bin, como foi indicado com o prefixo --prefix=/usr/local. Enquanto este problema não é resolvido, convém alterar o PATH pré-definido, para incluir esta pasta, ou alternativamente, copiar estes executáveis para uma pasta incluída no PATH.

sudo ln -s /usr/lib/postgresql/9.0/bin/shp2pgsql-gui /usr/local/bin
sudo ln -s /usr/lib/postgresql/9.0/bin/shp2pgsql /usr/local/bin
sudo ln -s /usr/lib/postgresql/9.0/bin/pgsql2shp /usr/local/bin

Criação de uma template_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/9.0/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 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_27492.backup
pg_restore --host localhost --port 5432 --username geobox --dbname geotuga --verbose "mcdonalds_EPSG_27492.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, 27492, 'POINT');"
(senha geobox)

Interface de administração web para o Postgresql

sudo apt-get install phppgadmin

Passa a ser possível administrar a base de dados Postgresql a partir de uma localização remota, através do browser. Para testar, basta ligar-se a:

http://localhost/phppgadmin/

Anterior: Instalação do gestor de base de dados Postgresql com PostGIS Seguinte: Instalação do software já compilado para Ubuntu

Ferramentas pessoais