在linux系统中离线安装postgresql和postgis亲测可用

离线用到的包,百度链接:
https://pan.baidu.com/s/14baq72bveIWMbN89tvEgXQ
提取码:573f

我是把防火墙关了的,方便连接数据库

关闭防火墙:systemctk stop firewalld

一、离线安装postgresql使用gz包

  1. postgresql文件夹里面的上传到/usr/local下面,root用户
    进入/usr/local文件夹里面:cd /usr/local
    先安装gcc,g++编译工具,不然安装报以下错误
    【configure: error: no acceptable C compiler found in $PATH】
    解压gccpackages.tar.gz到opt文件夹:tar -zxvf gccpackages.tar.gz -C /opt/
    进入opt文件夹:cd /opt/gccpackages
    执行安装命令:rpm -Uvh *.rpm --nodeps --force
    进入/usr/local文件夹里面:cd /usr/local
    先把rpm文件安装(如果不安装会报下图错误):
    在这里插入图片描述

执行命令:rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
执行命令:rpm -ivh readline-6.2-11.el7.x86_64.rpm
执行命令:rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm --force --nodeps
执行命令:rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm
执行命令:rpm -ivh xz-devel-5.2.2-1.el7.x86_64.rpm
执行命令:rpm -ivh libxml2-2.9.1-6.el7.5.x86_64.rpm
执行命令:rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm --nodeps
解压数据库:tar -zxvf postgresql-9.5.7.tar.gz
到解压后文件夹:cd postgresql-9.5.7
执行命令:./configure --prefix=/usr/local/postgresql --with-libxml
编译:gmake
在这里插入图片描述
安装:gmake install
在这里插入图片描述
创建用户:useradd postgres
进入到postgres目录:cd /usr/local/postgresql
创建data文件夹:mkdir data
赋予权限:chown -R postgres:postgres data
2. 设置环境变量
执行命令:vi /etc/profile
在末尾添加:

export PGDATA=/usr/local/postgresql/data 
export PGHOME=/usr/local/postgresql 
export PATH=$PGHOME/bin:$PATH 

刷新配置:source /etc/profile
3. 初始化数据库
切换用户:su postgres
数据库初始化操作:initdb
在这里插入图片描述
返回到根目录:cd
启动数据库:pg_ctl -D /usr/local/postgresql/data -l logfile start
执行命令:psql
修改密码:alter user postgres with password '密码';
执行命令:\q
4. 数据库配置,如果postgres用户修改不了就切换到root用户
进入到data文件夹:cd /usr/local/postgresql/data/
执行命令:vi postgresql.conf

修改listen_addresses="*"

执行命令:vi pg_hba.conf

# IPv4 local connections:
每个机器都能远程连接
host    all             all             0.0.0.0/0            md5

重启数据库:pg_ctl -D /usr/local/postgresql/data -l logfile restart
测试连接:
在这里插入图片描述
测试:

CREATE TABLE xmltab01(books xml);
INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>');

二、离线安装postgis

参考链接
我是参考上面的链接安装,并自己做了调整
5. 进入到gisfile文件夹:cd /var/gisfile
里面是安装postgresl时候上传进来的文件
在这里插入图片描述
2. 先安装bzip,不然会报以下错误
在这里插入图片描述
进入/var/gisfile文件夹:cd /var/gisfile
安装命令:rpm -ivh bzip2-1.0.6-13.el7.x86_64.rpm

3.(上面已经装过可以省略)安装gcc,g++编译工具,不然安装报以下错误
configure: error: no acceptable C compiler found in $PATH
进入/var/gisfile文件夹:cd /var/gisfile
解压gccpackages.tar.gz到opt文件夹:tar -zxvf gccpackages.tar.gz -C /opt/
进入opt文件夹:cd /opt/gccpackages
执行安装命令:rpm -Uvh *.rpm --nodeps --force
4. 安装gdal拓展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf gdal-2.0.0.tar.gz -C /opt
进入到解压后目录:cd /opt/gdal-2.0.0
将gdal安装到/usr/local/gdal-2.0.0目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/gdal-2.0.0
编译:make
安装:make install
5. 安装geos扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -jxf geos-3.6.3.tar.bz2 -C /opt
进入到解压后目录:cd /opt/geos-3.6.3/
将geos安装到/usr/local/geos-3.6.3目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/geos-3.6.3
编译:make
安装:make install
6. 安装libxml2扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf libxml2-2.9.1.tar.gz -C /opt 进入到解压后目录:cd /opt/libxml2-2.9.1/
将libxml2安装到/usr/local/libxml2-2.7.2目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/libxml2-2.9.1 --with-python=no
编译:make
安装:make install
7. 安装proj拓展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf proj-5.2.0.tar.gz -C /opt
进入到解压后目录:cd /opt/proj-5.2.0
将proj安装到/usr/local/proj-5.2.0目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/proj-5.2.0
编译:make
安装:make install
8. 安装json-c拓展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar xzf json-c-json-c-0.13.1-20180305.tar.gz -C /opt
进入到解压后目录:cd /opt/json-c-json-c-0.13.1-20180305
将json-0.12安装到/usr/local/json-0.12目录下
注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/json-0.12
编译:make
安装:make install
9. 安装json-c拓展
需要安装perl依赖
进入/var/gisfile文件夹:cd /var/gisfile
解文件perl-5.32.1.tar.gz:tar xzf perl-5.32.1.tar.gz
进入到解压后文件夹:cd /var/gisfile/perl-5.32.1
执行命令:./Configure -des -Dprefix=/usr/local/perl
依次执行命令:make make test make install
查看是否安装成功:perl –v
如果该命令不能用就使用:perl –version
在这里插入图片描述
安装postgis
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf postgis-2.5.1.tar.gz -C /opt
进入到解压后目录:cd /opt/postgis-2.5.1
分行复制,不要复制 \ 不然执行会报错,复制到linux中手动加上\ ,\后面不要有空格
执行命令:
./configure --prefix=/usr/local/postgis \ --with-pgconfig=/usr/local/postgresql/bin/pg_config \ --with-xml2config=/usr/local/libxml2-2.9.1/bin/xml2-config \ --with-geosconfig=/usr/local/geos-3.6.3/bin/geos-config \ --with-gdalconfig=/usr/local/gdal-2.0.0/bin/gdal-config \ --with-projdir=/usr/local/proj-5.2.0
在这里插入图片描述
如果出现:configure: error: could not find GDAL错误
执行命令:vi /etc/ld.so.conf
在里面添加:
/usr/local/lib
/usr/local/postgresql/lib
然后在执行上面的步骤

编译:make
安装:make install
10. 安装postgis拓展
切换到postgres用户:su postgres
执行:psql
创建数据库:create database postgis;
切换到postgis数据库:\c postgis
执行命令:create extension postgis;
如果报错:ERROR: could not load library “/usr/local/postgresql/lib/postgis-2.5.so”: libgeos_c.so.1: 无法打开共享对象文件: 没有那个文件或目录
执行命令(lib后面的文件):ldd /usr/local/postgresql/lib/postgis-2.5.so
在这里插入图片描述
缺少so文件,直接把/usr/local对应的安装文件里面复制到postgresql的lib文件夹下
执行命令:cp /usr/local/geos-3.6.3/lib/libgeos_c.so.1 /usr/local/postgresql/lib/
执行命令:cp /usr/local/proj-5.2.0/lib/libproj.so.13 /usr/local/postgresql/lib/
执行命令:cp /usr/local/libxml2-2.9.1/lib/libxml2.so.2 /usr/local/postgresql/lib/
再次执行:ldd /usr/local/postgresql/lib/postgis-2.5.so
在这里插入图片描述
再切换到postgis数据库执行:create extension postgis;
报错:could not load library “/usr/local/postgresql/lib/rtpostgis-2.5.so”: libgdal.so.20: 无法打开共享对象文件: 没有那个文件或目录
执行命令(lib后面的文件):ldd /usr/local/postgresql/lib/rtpostgis-2.5.so
在这里插入图片描述
执行命令:cp /usr/local/gdal-2.0.0/lib/libgdal.so.20 /usr/local/postgresql/lib/
再次执行:ldd /usr/local/postgresql/lib/rtpostgis-2.5.so
在这里插入图片描述
如果创建拓展报错:ERROR: could not load library “/usr/local/postgresql/lib/rtpostgis-2.0.so”:libpq.so.5: cannot open shared object file: No such file or directory
把postgresql安装包里libpq.so.5的添加到64位系统中:

ln -s /usr/local/postgresql-9.5.7/src/interfaces/libpq/libpq.so.5  /usr/lib64/libpq.so.5

再次切换到postgis数据库执行:create extension postgis;
在这里插入图片描述
为了更好的使用postgis功能,决定把所有的扩展都装了:create extension postgis_topology;
在这里插入图片描述
测试postgis是否成功,打开navicat打开postgis数据库
执行sql:select st_buffer(st_geometryfromtext ('POINT (0 0)',0),100 )
如果有结果说明已完成!
在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值