pgxl安装postgis

pgxl安装postgis

  • pgxl安装postgis
    • 说明
    • 环境
    • 安装过程
      • 下载postgis安装包及其依赖包
      • yum安装基础依赖
      • 安装下载的依赖
      • 安装postgis
      • 完善postgis依赖包,权限完善
      • gis相关函数库初始化
      • 安装成功测试
    • 异常解决
      • 执行gis相关函数报错:
      • gis相关函数库初始化时出现下面异常:

pgxl安装postgis

说明

pgxl是使用postgresql为基础构建的一套分布式集群部署服务。当给pgxl安装postgis时,只需要给pgxl的datanode节点安装postgis,其余节点不需要安装。

环境

系统:centos6.9
pgxl:PGXL 10r1.1, based on PG 10.6 (Postgres-XL 10r1.1)
postgis:postgis-2.4.0
说明:我之前使用pgxl版本:Postgres-XL 9.5r1.6 基于postgres9.5.8,安装失败,好像Postgres-XL 9.5r1.6这个版本还没有完全兼容postgis。后来换了Postgres-XL 10r1.1安装成功。

安装过程

下载postgis安装包及其依赖包

kdir postgis-jars
cd postgis-jars

wget http://download.osgeo.org/gdal/2.0.1/gdal-2.0.1.tar.gz
wget http://download.osgeo.org/geos/geos-3.6.0.tar.bz2
wget http://download.osgeo.org/proj/proj-4.8.0.tar.gz
wget http://download.osgeo.org/postgis/source/postgis-2.4.0.tar.gz

yum安装基础依赖

yum -y install gcc-c++.x86_64
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install libxml2 libxslt -y
yum -y install libxml2 libxml2-dev libxml libxml2*

安装下载的依赖

tar -zxf proj-4.8.0.tar.gz
cd proj-4.8.0
mkdir -p /usr/local/proj
./configure --prefix=/usr/local/proj
make -j4
make install
cd ..
tar -jxf geos-3.6.0.tar.bz2
cd geos-3.6.0
mkdir /usr/local/geos
./configure --prefix=/usr/local/geos
make -j4
make install
cd ..
tar -zxvf gdal-2.0.1.tar.gz
cd gdal-2.0.1
mkdir -p /usr/local/gdal
./configure --prefix=/usr/local/gdal
make -j4
make install

安装postgis

cd ..
tar -zxf postgis-2.4.0.tar.gz
cd postgis-2.4.0
mkdir /usr/local/postgis
cd postgis-2.4.0
./configure --prefix=/usr/local/postgis --with-pgsql=usr/local/pgsql/bin/pg_config --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-geosconfig=/usr/local/geos/bin/geos-config  --with-projdir=/usr/local/proj --with-gdalconfig=/usr/local/gdal/bin/gdal-config
make -j4
make install

完善postgis依赖包,权限完善

cp /usr/local/geos/lib/libgeos_c.so.1 /usr/local/pgsql/lib/
cp /usr/local/proj/lib/libproj.so.0 /usr/local/pgsql/lib/

chmod -R 777 /usr/local/geos
chmod -R 777 /usr/local/gdal
chmod -R 777 /usr/local/proj
chmod -R 777 /usr/local/postgis

gis相关函数库初始化

su postgres
cd ~
psql -h 10.255.9.251 -p 6432 -d park -U postgres -f /usr/local/pgsql/share/contrib/postgis-2.4/postgis.sql
psql -h 10.255.9.251 -p 6432 -d park -U postgres -f /usr/local/pgsql/share/contrib/postgis-2.4/spatial_ref_sys.sql

参数说明:
-h:主机地址
-p:端口号
-d:数据库名
-U:用户名

安装成功测试

能显示如下信息即可执行成功

#进入数据库
psql -p 6432 -U postgres
#切换数据库
postgres=# \c park
#执行查询
park=# select st_geomfromtext('Point(103.667546 36.534295)');
              st_geomfromtext               
--------------------------------------------
 0101000000D7A4DB12B9EA59404AB54FC763444240
(1 row)

异常解决

执行gis相关函数报错:

test1=# select st_geomfromtext(‘Point(103.667546 36.534295)’);
ERROR: function st_geomfromtext(unknown) does not exist
LINE 1: select st_geomfromtext(‘Point(103.667546 36.534295)’);
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
提示没有相关函数,原因是没有将gis相关函数库初始化成功。如果有多个库,需给每个库都做 gis相关函数库初始化 操作。

gis相关函数库初始化时出现下面异常:

'psql:postgis.sql:6828: ERROR: current transaction is aborted, commands ignored until end of transaction block
1、确保:/usr/local/pgsql/lib/目录下libgeos_c.so.1、libproj.so.0存在
2、确保: /usr/local/geos、/usr/local/geos、/usr/local/gdal、/usr/local/proj、/usr/local/postgis这几个目录有可执行权限
3、如果已经成功导入了,也会有这个报错信息。

你可能感兴趣的:(postgresql,pgxl安装postgis,centos安装postgis)