空间数据库postgis安装全纪录(亲测)

公司需要安装一套空间数据库,选型用的是PostgreSQL的postgis数据库插件。以下为安装过程及遇到的问题

环境:centos5.3
             XAMPP for Linux 1.6.8a
             postgresql-8.3.4
             geos-3.2.2.tar
              postgis-1.3.6.tar.gz
              proj-4.5.0.tar.gz

安装过程如下:
1, postgresql install(postgresql-8.3.4)
./configure --prefix=/opt/postgresql --enable-profiling  --without-readline
make
make install
# cd /usr/local
# ln -s /opt/postgresql pgsql


2, proj install(proj-4.6.0)
./configure --prefix=/opt/proj4
make
make install
# cd /usr/local
# ln -s /opt/proj4 proj


3, geos install(geos-3.2.2)
./configure --prefix=/opt/geos
make
make install
# cd /usr/local
# ln -s /opt/geos geos


4, ldconfig change nad exec
# vi /etc/ld.so.conf
---------------------
/opt/postgresql
/opt/geos
/opt/proj4
---------------------
# /sbin/ldconfig


5, postGIS install(postgis-1.3.6)
LDFLAGS=-lstdc++ ./configure --prefix=/opt/postgis --with-pgsql=/opt/postgresql/bin/pg_config --with-proj=/opt/proj4 --with-proj-libdir=/opt/proj4/lib --with-geos=/opt/geos/bin/geos-config --with-geos-libdir=/opt/geos/lib --with-pgconfig=/opt/postgresql/bin/pg_config -with-projdir=/opt/proj4/
make
make install


6, Add user/group and append path
# groupadd postgres
# useradd -g postgres postgres
# su - postgres
# vi .bash_profile
------------------------------------------
PGDATA=$HOME/data
PGSQL_HOME=/usr/local/pgsql
PROJ_HOME=/usr/local/proj
GEOS_HOME=/usr/local/geos
POSTGIS_HOME=/usr/local/postgis
LD_LIBRARY_PATH=$PGSQL_HOME/lib:$PROJ_HOME/lib:$GEOS_HOME/lib:$POSTGIS_HOME/lib
PATH=$PGSQL_HOME/bin:$PATH:$HOME/bin

export PATH PGDATA PGSQL_HOME PROJ_HOME GEOS_HOME POSTGIS_HOME LD_LIBRARY_PATH
------------------------------------------
**  append above text


7, Init postgres db
# su - postgres
$ initdb -D data
$ cd data
-- Modify postgresql.conf, pg_hba.conf for remote connection setting changes

8, Setup postgres
# su - postgres
$ postgres -D data &
$ createdb postgis
$ createlang plpgsql postgis
$ cd $POSTGIS_HOME/share
$ psql -d postgis -f lwpostgis.sql
$ psql -d postgis -f lwpostgis_upgrade.sql
$ psql -d postgis -f spatial_ref_sys.sql


前两次安装出现的问题
1、启动时出现错误提示
sh: logfile: Permission denied
server starting

这是由于新的用户家目录中的 loglife文件夹的权限不够,可以到当前的数据库操作用户的家目录下修改loglife文件的权限。

2、如果你的postgres用户密码一直报错可以通过初始数据库集来初始密码

方法:将PostgreSQL的以前生成的配置文件也就是data目录下的文件全部删除 /opt/postgresql/data
在当前需要重置的用户环境下,使用 /opt/postgresql//bin/initdb -D mkdir /opt/postgresql/data 命令重置数据库
这样就可以重置需要重置的用户的密码了 
可以用# su - postgres 来切换到postgres用户管理状态!

3、切换到postgres用户下导入postgis数据库模板文件时
$psql -d postgis -f lwpostgis.sql
出现大量错误
psql:/opt/postgis/share/lwpostgis.sql:6511: ERROR:  current transaction is aborted, commands ignored until end of transaction block

解决过程:
首先去查看了要导入的文件
-- Deprecation in 1.2.3
CREATE OR REPLACE FUNCTION histogram2d_in(cstring)
        RETURNS histogram2d
        AS '/opt/postgis-1.3.1/lib/liblwgeom', 'lwhistogram2d_in'
        LANGUAGE 'C' IMMUTABLE STRICT; -- WITH (isstrict);
发现其中的 /opt/postgis-1.3.1/lib/liblwgeom', 路径与现在的安装路径不同,现在
将数据文件下载到本地,用文本编辑修改为环境路径/opt/postgis/lib/liblwgeom

修改后使用pgadmin导入,出现
permission denied for language c 错误。

无法导入的问题出现了两天,头大的要死了,
后来我们老大出马,一个顶仨!!!
找了n多的e文之后,geos版本低了,后来老大加班升了个geos版本
一切 ok了!
――――――――――――――――――――――――--
特别鸣谢:技术总监,也就是我们steve老大的指导~~

革命还未成功,同志们仍需努力,下一步就是要以数据库为基础搭建 数据库的前端服务了。选了几个软件(测试研究中),弄好了,给大家分享 出来!

开源世界,分享知识的快乐!开源好处......(省略不可计数的文字)!
呵呵,废话老多了~~~愿中国开源事业节节高升!加油!

还有一个重要的事情,就是:对不起,先沉默一下,今天是全国悼念青海玉树地震的日子。在此请我们一起为逝者祈福,为生者加油!

本文出自 “B612号小行星” 博客,转载请与作者联系!

你可能感兴趣的:(数据库,PostgreSQL,postgis,空间,纪录)