postgresql & postgis部署

参考

PostGIS Installation
在Linux环境下编译安装配置PostGIS/PostgreSQL全过程
安装PostGIS(Linux篇)

下载源码

Postgresql源码
GDAL源码
Proj源码
Geos源码 依赖gdal
libxml源码
PostGIS源码 依赖gdal proj geos libxml

部署

1. Postgresql部署

mkdir /usr/local/pgsql
tar zxf postgresql-8.4.0.tar.gz
cd postgresql-8.4.0
./configure –prefix=/usr/local/pgsql    #配置
make                                    #编译
make install                            #安装

2. gdal proj geos libxml

同上

3. postgis

./configure –prefix=/usr/local/postgis 
    --with-pgconfig=/var/local/pgsql/bin/pg_config
    --with-gdalconfig=/var/local/gdal/bin/gdal-config
    --with-geosconfig=/var/local/pgsql/bin/geos-config
    --with-xml2config=/var/local/libxml/bin/xml2-config
    --with-projdir=/var/local/proj

4. postgresql & postgis配置

#1. 创建PostgreSQL的用户,设定密码
adduser postgres

#2. 创建PostgreSQL的数据库目录,修改目录的权限属性
mkdir /usr/local/pgsql/data
chown -R postgres /usr/local/pgsql

#3. 初始化数据库并启动
#   以postgres用户登陆
su postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
#   启动数据库服务器
pg_ctl start -D /usr/local/pgsql/data –l pgsql.log

#4. 设置远程可访问数据库
vi /usr/local/pgsql/data/postgresql.conf
#   把listen_address = 'localhost' 改为 
listen_address = '*'

vi /usr/local/pgsql/data/pg_hba.conf
#   在文件最后加入:
host  all  all  192.168.1.0/24  md5
#   为postgres用户设置密码
su - postgres
-base-4.2$ psql
postgres=# \password postgres 

#   停止数据库服务
/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data
#   重新启动数据库
/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data –l pgsql.log

#5. 创建数据库
#   切换到postgres用户
su postgres
#   创建数据库gisdb
/usr/local/pgsql/bin/createdb gisdb

#6. 增加动态链接库的搜索路径
vi /etc/ld.so.conf
#   在最后添加四行:
/usr/local/lib
/usr/local/proj4/lib
/usr/local/geos/lib
/usr/local/pgsql/lib
#   运行ldconfig命令,使以上修改生效:
/sbin/ldconfig

#7. 创建postgis空间数据库(使用postgis提供的sql)
#   在gisdb上创建postgis的函数、数据类型等资源
/usr/local/pgsql/bin/psql -h 127.0.0.1 -d gisdb -U postgres -f /usr/local/pgsql/share/contrib/postgis-2.4/postgis.sql
#   在gisdb上创建空间参考表
/usr/local/pgsql/bin/psql -h 127.0.0.1 -d gisdb -U postgres -f /usr/local/pgsql/share/contrib/postgis-2.4/spatial_ref_sys.sql
#   完成postgis空间数据库创建

5. 导入shapefile数据到postgresql

shp2pgsql -W "UTF-8" D:\branch.shp branch > D:\branch.sql
#这里的-W "UTF-8"代表字符编码的转换。D:\branch.shp则是要生成sql脚本的shp文件.
#branch是创建数据表的表名,>不能少, D:\branch.sql则是要生成SQL文件的路径

#生成成功后命令提示符会显示如下:  
#Shapefile type: Point  
#Postgis type: POINT[2]  
  1. 执行该SQL语句文件,导入数据到数据库template_postgis中
psql -d gisdb -f D:\branch.sql postgres  
#其中 gisdb是数据库名,postgres是该数据库的用户  
#执行成功后,刷新该数据库,就可以看到表branch 

错误

1. geos make报错

postgres install + postgis install(二)

2. psql导入.sql数据报错:psql:…sql relation “branch” does not exist

postgis未正确安装

    原文作者:myparamita
    原文地址: https://www.jianshu.com/p/663da61d449c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞