postgresql和postgis安装配置

前端之家收集整理的这篇文章主要介绍了postgresql和postgis安装配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

安装规划:

1.版本选择
根据postgis官方的说明,推荐的版本组合如下:

http://trac.osgeo.org/postgis/wiki/UsersWikiPostgresqlPostGIS

postgis2.1pgsql9.1/9.2/9.3是最佳的,最新的pgsql9.4并不是最好的选择(虽然支持实际使用中也正常)

postgis2.1geos组合:

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仓库的geosgdal版本太旧,所以应该从源码安装geos3.5gdal1.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

);

猜你在找的Postgre SQL相关文章