linux离线安装postgresql和postgis插件

linux离线安装postgresql和postgis插件

  • 一、压缩包安装postgresql
    • 1、下载解压linux版本postgresql压缩包
    • 2、configure安装环境检测
    • 3、编译安装
    • 4、创建postgres用户与数据库data目录
    • 5、配置环境变量
    • 6、初始化数据库
    • 7、修改配置文件pg_hba.conf与postgresql.conf
    • 8、设置开机自启
  • 二、压缩包安装postgis插件
    • 1、安装proj4
    • 2、安装geos
    • 3、安装gdal
    • 4、安装PostGIS
    • 5、检查PostGIS是否安装成功
    • 5、开启postgis插件

一、压缩包安装postgresql

1、下载解压linux版本postgresql压缩包

在 https://www.postgresql.org/ftp/source 下载postgres安装包,我下的版本是12.4 ,然后拷贝至linux中并解压,拷贝到哪个目录随便

#解压
[root@gyl soft]# tar -zxvf postgresql-12.4.tar.gz 
#进入解压后的文件
[root@gyl soft]# cd postgresql-12.4

2、configure安装环境检测

解压文件包含configure执行文件,用于检测系统安装环境。运行configure程序,并且加上—prefix参数,用于指定软件安装的位置,这里安装目录为/usr/local/postgresql:

[root@gyl postgresql-12.4]# ./configure --prefix=/usr/local/postgresql  

如果提示confiqure: error: readline library not found
需要手动下载readline相关的压缩包安装,者使用–without-readline 选项关闭 readline 功能。如果实在安装不起的话就用这个试试吧。readline 也就是命令行编辑,关闭的话,你直接用psql 就不能编辑命令行,如果输错指令,不能回滚命令历史记录,只能手工重新输入。
在 http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ 搜索包

readline-devel-6.2-11.el7.x86_64.rpm

ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm

拷贝至linux中安装


[root@gyl postgresql-12.4]# rpm -ivh /usr/local/src/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm  
[root@gyl postgresql-12.4]# rpm -ivh /usr/local/src/readline-devel-6.2-11.el7.x86_64.rpm  

再次执行

./configure --prefix=/usr/local/postgresql  

又报error:zlib library not found错误
继续找到包 zlib-devel-1.2.7-18.el7.x86_64.rpm ,拷贝安装

#安装zlib-devel
[root@gyl postgresql-12.4]# rpm -ivh /usr/local/src/zlib-devel-1.2.7-18.el7.x86_64.rpm 
#安装无报错后继续执行
[root@gyl postgresql-12.4]# ./configure --prefix=/usr/local/postgresql

成功之后进行下一步

3、编译安装

[root@gyl postgresql-12.4]# make & make install

这些执行完了,会在/usr/local/生成一个/usr/local/postgresql目录。这就是编译后安装的目录。

4、创建postgres用户与数据库data目录

创建postgres组与postgres用户

[root@gyl postgresql-12.4]# groupadd postgres  
[root@gyl postgresql-12.4]# useradd -g postgres -m postgres  
[root@gyl postgresql-12.4]# passwd postgres

在/usr/local/postgresql下创建data文件夹,并将其权限授予postgrs

[root@gyl postgresql]# mkdir -p /usr/local/postgresql/data  
[root@gyl postgresql]# chown postgres:postgres /usr/local/postgresql/data/

5、配置环境变量

设置环境变量,在~/.bash_profile的最后添加如下内容

[root@gyl ~]# vim .bash_profile 

export PGHOME=/usr/local/postgresql
export PGDATA=/usr/local/postgresql/data
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
alias rm='rm  -i'
alias ll='ls -lh'
#alias pg_start='pg_ctl start -D $PGDATA'
#alias pg_stop='pg_ctl stop -D $PGDATA -m fast'

6、初始化数据库

初始化数据库

[root@gyl ~]# initdb -D /usr/local/postgresql/data

启动服务

[root@gyl ~]# pg_ctl -D /usr/local/postgresql/data -l /usr/local/postgresql/logfile start

7、修改配置文件pg_hba.conf与postgresql.conf

找到/usr/local/postgresql/data下pg_hba.conf和postgresql.conf,修改其内容

#--------------------允许远程连接---------------------------
#修改客户端认证配置文件pg_hba.conf,将需要远程访问数据库的IP地址或地址段加入该文件
vi /usr/local/postgresql/data/pg_hba.conf

#在文件的最下方加上下面的这句话(出于安全考虑,不建议这样配置)
host    all         all         0.0.0.0/0             trust

#设置监听整个网络,查找“listen_addresses ”字符串,
vi /usr/local/postgresql/data/postgresql.conf

#修改为如下:
listen_addresses = '*' 

重启服务

[root@gyl ~]# pg_ctl -D /usr/local/postgresql/data -l /usr/local/postgresql/logfile restart

查看启动是否成功

#端口是否启用
[root@gyl ~]# netstat -anp | grep 5432

8、设置开机自启

拷贝源安装包下postgres-12.4/contrib/start-scripts/linux至etc/init.d中,并命名为postgresql。检查修改其中的路径与实际相符合,并添加执行权限


[root@gyl postgresql]# cp /usr/local/soft/postgresql-12.4/contrib/start-scripts/linux /etc/init.d/postgresql  
[root@gyl postgresql]# vim /etc/init.d/postgresql  
[root@gyl postgresql]# chmod +x /etc/init.d/postgresql

加入开机启动


[root@gyl postgresql]# chkconfig --add postgresql  
[root@gyl postgresql]# chkconfig postgresql on  
[root@gyl postgresql]# systemctl start postgresql.service   
[root@gyl postgresql]# systemctl status postgresql.service   
[root@gyl postgresql]# systemctl enable postgresql.service

二、压缩包安装postgis插件

前提条件:
安装PostGIS之前必须先安装proj,geos,gdal.

1、安装proj4

下载proj-4.8.0.tar.gz :http://download.osgeo.org/proj/proj-4.8.0.tar.gz

[root@gyl soft]# tar xf proj-4.8.0.tar.gz
[root@gyl soft]# cd proj-4.8.0
[root@gyl proj-4.8.0]# ./configure --prefix=/usr/local/postgresql/plugin/proj
[root@gyl proj-4.8.0]# make && make install
   #等待安装完成...
   
#配置和加载动态链接库:

[root@gyl proj-4.8.0]# vim /etc/ld.so.conf.d/proj-4.8.0.conf

/usr/local/postgresql/plugin/proj/lib

[root@gyl proj-4.8.0]# ldconfig

2、安装geos

下载geos-3.6.5.tar.bz2的链接为:http://download.osgeo.org/geos/geos-3.6.5.tar.bz2

[root@gyl soft]# bzip2 -d geos-3.6.5.tar.bz2

[root@gyl soft]# tar xf geos-3.6.5.tar

[root@gyl geos-3.6.5]# ./configure --prefix=/usr/local/postgresql/plugin/geos

......

[root@gyl geos-3.6.5]# make && make install

......

#配置和加载动态链接库:

[root@gyl geos-3.6.5]#  vim /etc/ld.so.conf.d/geos-3.6.5.conf

/usr/local/postgresql/plugin/geos/lib

[root@gyl geos-3.6.5]# ldconfig

3、安装gdal

下载gdal-2.0.1.tar.gz的链接为:http://download.osgeo.org/gdal/2.0.1/gdal-2.0.1.tar.gz

[root@gyl soft]#tar xf gdal-2.0.1.tar.gz

[root@gyl soft]# cd gdal-2.0.1

[root@gyl gdal-2.0.1]# ./configure --prefix=/usr/local/postgresql/plugin/gdal

[root@gyl gdal-2.0.1]#make && make install

......


#配置和加载动态链接库:

[root@gyl gdal-2.0.1]# vim /etc/ld.so.conf.d/gdal-2.0.1.conf

/usr/local/postgresql/plugin/gdal/lib

[root@gyl gdal-2.0.1]# ldconfig

4、安装PostGIS

下载postgis-3.1.0.tar.gz的链接为:http://download.osgeo.org/postgis/source/postgis-3.1.0.tar.gz

[root@gyl soft]# tar xf postgis-3.1.0.tar.gz
[root@gyl soft]# cd postgis-3.1.0
[root@gyl postgis-3.1.0]# ./configure --prefix=/usr/local/postgresql/plugin/postgis \

--with-pgconfig=/usr/local/postgresql/bin/pg_config \

--with-geosconfig=/usr/local/postgresql/plugin/geos/bin/geos-config \

--with-gdalconfig=/usr/local/postgresql/plugin/gdal/bin/gdal-config \

--with-projdir=/usr/local/postgresql/plugin/proj


.........

PostGIS is now configured for x86_64-unknown-linux-gnu

 -------------- Compiler Info -------------

  C compiler:           gcc -g -O2

  C++ compiler:         g++ -g -O2

  SQL preprocessor:     /usr/bin/cpp -w -traditional-cpp -P

 -------------- Dependencies --------------

  GEOS config:          /opt/geos-3.4.2/bin/geos-config

  GEOS version:         3.4.2

  GDAL config:          /usr/local/bin/gdal-config

  GDAL version:         2.0.1

  PostgreSQL config:    /usr/local/pgsql/bin/pg_config

  PostgreSQL version:   PostgreSQL 9.6.3

  PROJ4 version:        48

  Libxml2 config:       /usr/bin/xml2-config

  Libxml2 version:      2.7.6

  JSON-C support:       no

  PostGIS debug level:  0

  Perl:                 /usr/bin/perl

 --------------- Extensions ---------------

  PostGIS Raster:       enabled

  PostGIS Topology:     enabled

  SFCGAL support:       disabled

 -------- Documentation Generation --------

  xsltproc:             

  xsl style sheets:     

  dblatex:             

  convert:             

  mathml2.dtd:          http://www.w3.org/Math/DTD/mathml2/mathml2.dtd

如果报这个错误信息:

configure: error: could not find xml2-config from libxml2 within the current path. You may need to try re-running configure with a --with-xml2config parameter.

解决办法:下载这个包并安装

查看是否存在xml2-config文件,结果不存在

[root@node01 postgis-2.1.8]# find / -name "xml2-config"

查看是否已经安装了libxml2和libxml2-devel

[root@node01 postgis-2.1.8]# rpm -qa |grep  libxml2

libxml2-2.7.6-14.el6.x86_64

libxml2-python-2.7.6-14.el6.x86_64
#没有libxml2-devel这个

下载libxml2-devel压缩包并安装
下载地址:http://mirror.centos.org/centos/7/os/x86_64/Packages/libxml2-devel-2.9.1-6.el7.5.x86_64.rpm

#安装
[root@gyl soft]# rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm

如果出现error: Failed dependencies ,就在后面加参数 --nodeps --force,其作用是不再分析包之间的依赖关系而直接安装

#安装
[root@gyl soft]# rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm --nodeps --force

如果出现错误:warning: user mockbuild does not exist - using root

warning: group mockbuild does not exist - using root
解决办法:新建一个组和一个帐号

[root@gyl soft]#gourpadd mockbuild
[root@gyl soft]#useradd mockbuild -g mockbuild

编译安装

[root@gyl postgis-3.1.0]# make & make install
......

make[2]: Leaving directory `/home/tools/postgis-2.1.8/extensions/postgis_topology'

make[1]: Leaving directory `/home/tools/postgis-2.1.8/extensions'

5、检查PostGIS是否安装成功

在Navicat中查看是否有这个表
linux离线安装postgresql和postgis插件_第1张图片

5、开启postgis插件

开启postgis插件
在sql中执行

create extension postgis;

用sql语句查询是否启用成功:

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

linux离线安装postgresql和postgis插件_第2张图片

你可能感兴趣的:(数据库,postgresql)