postgresql和postgis安装配置
安装规划:
1.版本选择: http://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS
postgis2.1与pgsql9.1/9.2/9.3是最佳的,最新的pgsql9.4并不是最好的选择(虽然支持实际使用中也正常)
postgis2.1与geos组合: 3.3可用,但不推荐 3.4/3.5推荐 gdal版本要求:1.8可用,但不推荐。推荐使用1.9/1.10/1.11
postgresql9.4 gdal1.9 postgis2.1.5
最佳组合如下: pgsql9.1/9.2/9.3 geos3.4/3.5 gdal1.9
故推荐的组合为pgsql9.3+geos3.5+gdal1.10
yum仓库的geos和gdal版本太旧,所以应该从源码安装geos3.5和gdal1.10
计划使用EPEL安装附加的软件包: rpm-ivhhttp://mirrors.zju.edu.cn/epel/6/i386/epel-release-6-8.noarch.rpm
2.数据目录位于/data/pgdata 3.pgsql服务器进程账号名称为postgres
先按正常的顺序安装postgresql
安装必要的依赖库 yuminstallgdgd-devellibtool*autoconf*readline*
1.建立系统用户postgres,它将作为pgsql服务器进程和默认的超级用户 useraddpostgres tar-xfpostgresql-9.4.0.tar.gz cdpostgresql-9.4.0
./configure make makeinstall
默认安装到/usr/local/pgsql目录中 将其库目录加入到系统库文件检索路径中: echo/usr/local/pgsql/lib>>/etc/ld.so.conf ldconfig
向/root/.bashrc文件中加入以下内容; exportPATH="$PATH:/usr/local/pgsql/bin" 再执行source~/.bashrc 以便方便使用pgsql的命令
安装系统服务,源码包中已经包含服务启动脚本 cpcontrib/start-scripts/linux/etc/init.d/postgres chmod+x/etc/init.d/postgres chkconfig--addpostgres
然后修改/etc/init.d/postgres文件,将PGDATA变量修改为/data/pgdata 即我们规划的数据目录
初始化数据库目录: mkdir-p/data/pgdata chown-Rpostgres:postgres/data/pgdata
初始化数据库: 必须使用postgres用户执行: supostgres /usr/local/pgsql/bin/initdb-D/data/pgdata/ exit 初始化完成后,就可以启动服务 servicepostgresstart
验证: netstat-ntpl postgresql默认监听在5432端口
psql-Upostgres
到此,postgresql安装完成
二、开始postgis的安装:
postgis依赖gdal,但yum源中的版本过低,不满足最低版本要求(1.8+),故从源码安装之:
tar-xfgdal-1.9.0.tar.gz cdgdal-1.9.0 ./configure make makeinstall
将gdal的库目录加入到系统库文件检索目录中: echo/usr/local/lib>>/etc/ld.so.conf ldconfig
postgis依赖以下库: geos3.3+,推荐使用3.4及以上版本,EPEL中的版本为3.3.2
yuminstallgeos-develproj*
tar-xfpostgis-2.1.5.tar.gz cdcdpostgis-2.1.5 ./configure make makeinstall
登录pgsql命令行,安装gis扩展: psqltest-Upostgres
CREATEEXTENSIONpostgis;
CREATEEXTENSIONpostgis_topology;
CREATEEXTENSIONfuzzystrmatch; 出错: ERROR:couldnotopenextensioncontrolfile"/usr/local/pgsql/share/extension/fuzzystrmatch.control":Nosuchfileordirectory
这个扩展已经包含在pgsql源码中,但是默认并未完成,所以需要安装之,进入pgsql源码目录: cdcontrib/fuzzystrmatch/ make makeinstall
然后再在pgsql命令行下执行:CREATEEXTENSIONfuzzystrmatch; 没有出现错误
CREATEEXTENSIONpostgis_tiger_geocoder;
没有出错,至此postgis安装完成
测试功能: CREATETABLEmytable( idSERIALPRIMARYKEY, geomGEOMETRY(Point,26910), nameVARCHAR(128) );
CREATEINDEXmytable_gix ONmytable USINGGIST(geom);
INSERTINTOmytable(geom)VALUES( ST_GeomFromText('POINT(00)',26910) );
SELECTid,name FROMmytable WHEREST_DWithin( geom, ST_GeomFromText('POINT(00)', 1000 ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |