Postgresql+postgis安装部署

一、环境介绍
系统平台:CentOS release 6.6 (Final)

Postgresql:postgresql-9.6.6

二、安装过程

1.安装依赖包

yum -y install gcc*
yum -y install readline-devel
2.	源码包获取
wget http://ftp.postgresql.org/pub/source/v9.6.6/postgresql-9.6.6.tar.gz
3.	解压
tar zxf postgresql-9.6.6.tar.gz
5.创建用户、设置密码
adduser postgres
passwd postgres
6.	编译安装
cd postgresql-9.6.6
./configure --prefix=/home/postgres/pgsql
gmake
gmake install
7.设置环境变量
vim /etc/profile
添加一行
PATH=$PATH:$HOME/bin:/home/postgres/pgsql/bin
source /etc/profile
8.创建数据库目录
mkdir /home/postgres/pgsql/data
创建数据库操作历史记录文件
touch /home/postgres/pgsql/.pgsql_history
更改所属组
chown -R postgres:postgres /home/postgres/pgsql/*
9.切换到postgre用户,初始化数据库
su - postgres
/home/postgres/pgsql/bin/initdb -D /home/postgres/pgsql/data
exit
10.编译启动命令
从postgres解压后的文件夹里拷贝linux到/etc/init.d/
cp /root/postgresql-9.6.6/contrib/start-scripts/linux /etc/init.d/postgresql
vim /etc/init.d/postgresql
修改下面两行:
prefix=/home/postgres/pgsql
PGDATA="/home/postgres/pgsql/data"
保存退出
添加可执行权限
chmod +x /etc/init.d/postgresql
11.启动postgres数据库
/etc/init.d/postgresql start
12.测试使用
[root@MidApp ~]#su - postgres
[postgres@MidApp ~]$ psql
psql (9.6.6)
Type "help" for help.
postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.utf-8 | en_US.utf-8 | 
 template0 | postgres | UTF8     | en_US.utf-8 | en_US.utf-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.utf-8 | en_US.utf-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)
postgres=# \q


13.安装PostGis的前提库
1.Proj4
tar xzvf proj-4.7.0.tar.gz  
cd proj-4.7.0  
./configure --prefix=/home/users/yourname/local/proj-4.9.3 --without-jni
make  
make install  
 
2.GEOS
tar jxvf geos-3.4.2.tar.bz2  
cd geos-3.4.2  
./configure --prefix=/home/users/yourname/local/geos-3.6.2
make  
make install  
 

3.libxml2
tar xzvf libxml2-2.9.0.tar.gz  
cd libxml2-2.9.0  
./configure  
make  
make install  
 如果在libxml2的configure中出现的错误:cannot remove 'libtoolT':No such file or directory

解决方法:
修改configure文件
$vim configure

删除这一行:$RM "$cfgfile"
保存再运行 ./configure
安装默认路径/usr/local
安装后可能需要重新定义:
export LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

4.cmake-3.10.2
tar  -zxvf
./configure
make
make install

5.JsonCpp
sudo yum install cmake
git clone https://github.com/open-source-parsers/jsoncpp.git
cd jsoncpp
mkdir -p build/debug
cd build/debug
cmake -DCMAKE_BUILD_TYPE=debug -DJSONCPP_LIB_BUILD_SHARED=OFF -G "Unix Makefiles" ../../
make
sudo make install

6.python-devel-2.7.5-16.el7.x86_64.rpm
7.json-c
tar xzvf json-c-json-c-0.11-20130402.tar.gz  
cd ./json-c-json-c-0.11-20130402  
./configure  
make  
make install  
 

8.GDAL
tar xzvf gdal-1.9.2.tar.gz  
cd gdal-1.9.2  
./configure --prefix=/home/users/yourname/local/gdal-2.2.1 --with-geos=/home/users/yourname/local/geos-3.6.2/bin/geos-config
make make install 
9.修改该etc下面ld.so.conf文件
/home/postgres/pgsql/lib
/home/users/yourname/local/gdal-2.2.1/lib

 
  
八、安装PostGis

Shell代码  收藏代码
tar zxvf postgis-2.1.2.tar.gz  
cd postgis-2.1.2  
./configure --with-pgconfig=/home/postgres/pgsql/bin/pg_config  --with-geosconfig=/home/users/yourname/local/geos-3.6.2/bin/geos-config  --with-projdir=/home/users/yourname/local/proj-4.9.3 --with-gdalconfig=/home/users/yourname/local/gdal-2.2.1/bin/gdal-config
make  
make install  
 

九、检查postgis安装是否正确

连接数据库执行:

select * from pg_available_extensions where name like 'postgis%';



 

有以上3条就说明PostGis安装成功了。

 

 十、为数据库增加PostGis插件

psql -d [yourdatabase] -c "CREATE EXTENSION postgis;"

psql -d [yourdatabase] -c "CREATE EXTENSION postgis_topology;"

 

 安装客户端插件(不必须):

psql -p 5432 -c "CREATE EXTENSION adminpack;"

 

十一、简单备份

备份

pg_dump dbname | gzip > filename.gz

还原

gunzip -c filename.gz | psql dbname

或者

cat filename.gz | gunzip | psql dbname

 

 分文件备份

pg_dump dbname | split -b 1m - filename

还原

cat filename* | psql dbname



http://blog.51cto.com/qingmiao/2046357
http://toplchx.iteye.com/blog/2090908
欢迎咨询QQ416534633


你可能感兴趣的:(Postgresql+postgis安装部署)