银河麒麟V10 - postgresql/postgis完整部署
- 引言
- posgresql部署
- 1. 通过yum安装
- 2. 编译安装
- 2.1 安装软件准备
- 2.2 文件包编译
- 3. 安装完成后进行数据库data配置
- PostGIS安装部署
- 1. 安装编译时环境
- 1.1 proj4
- 1.2 geos
- 1.3 gdal
- 2. 编译postgis安装包
- 2.1 编译安装
- 2.2 安装扩展插件
引言
首先了解一下银河麒麟V10的相关情况,我们可以知道其基于arm架构,且类似于CentOS,其安装过程类似于Linux整体环境的部署安装,下面做详细的介绍。
posgresql部署
安装前可以先进行用户以及用户组的配置,方便后面进行授权(通过编译安装也需要,后续步骤会体现)。
用户配置
# 新增用户组
groupadd postgres
# 创建用户组内用户
useradd -g postgres postgres
# 修改用户密码
passwd postgres
1. 通过yum安装
如果用户通过yum能匹配导相应版本,可以直接进行安装。
进行检索安装
yum search postgrs* # 选择对应版本进行安装
yum -y install postgresql.aarch64 # 安装相应程序包
yum -y install qt5-qtbase-postgresql.aarch64 # 安装相应程序包
安装完成后可以进行相应的检查
rpm -qa | grep postgres # 检查PostgreSQL 是否已经安装
rpm -qal | grep postgres # 检查PostgreSQL 安装位置
rpm -e #卸载
2. 编译安装
2.1 安装软件准备
基于此情况,我们首先需要准备相应的安装包内容,下载地址参照 postgresql v10.0官网地址
postgresql
源码编译时的 ./configure 需要此软件,安装方式。右键选择在终端打开
sudo su
yum install readline-devel
最好安装下openssl-devel
,因为安装timescaledb
时会提示这个未安装(一般情况也可以不安装)
yum install openssl-devel
2.2 文件包编译
将下载好的文件放入文件目录下,这里我放在postgresql目录下
cd /home/postgresql
tar -zxf postgresql-10.0.tar.gz
./configure
make
make install
3. 安装完成后进行数据库data配置
进行配置,先创建好相应的目录文件
mkdir -p /usr/local/pgsql/data # 创建数据存储目录
chown -R postgres:postgres /usr/local/pgsql/data # 用户/用户组目录授权
初始化数据库
su - postgres
initdb -D /usr/local/pgsql/data
pg_ctl -D /usr/local/pgsql/data -l logfile start
createdb postgis
psql postgis
这里可以查看数据库安装好后的对应版本
select version();
接着需要设置相应的环境变量,方便程序读取到指定内容
# 编辑用户下的环境变量配置文件
vi ./.bash_profile
输入如下内容:
LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH
PATH=/usr/local/pgsql/bin:$PATH
export PATH
export PGDATA=/usr/local/pgsql/data
编辑相应的数据库配置文件,修改postgresql.conf
与pg_hba.conf
cd /usr/local/pgsql/data
# 查找listen_addresses在postgresql.conf文件中的位置并显示行号
cat postgresql.conf | grep -n listen_addresses
# 编辑postgresql.conf文件,修改默认'localhost' 为'*'
vi postgresql.conf
# 编辑IPv4 local connections: 追加一行,如图所示
vi pg_hba.conf
# 修改完成后可以进行服务的重启
pg_ctl restart
此处截图为pg_hba.conf
追加配置
设置服务自动启动
chkconfig --list
PostGIS安装部署
此时发现postgis在麒麟系统环境内并没有提供相关yum安装包,那么则进行所需运行环境程序的编译安装即可。
1. 安装编译时环境
设置安装相应编译文件后也需要对相应的文件进行用户的授权,否则运行时会显示该用户无权限,或者文件不存在。运行 create extension *
会出现错误
1.1 proj4
wget http://download.osgeo.org/proj/proj-4.9.3.tar.gz
tar -xf proj-4.9.3.tar.gz
cd proj-4.9.3
./configure --prefix=/data-postgis/pgsql/plugin/proj
make
make install
echo "/data-postgis/pgsql/plugin/proj/lib" > /etc/ld.so.conf.d/proj-4.9.3.conf
ldconfig
1.2 geos
wget http://download.osgeo.org/geos/geos-3.6.1.tar.bz2
tar -jxf geos-3.6.1.tar.bz2
cd geos-3.6.1
./configure --prefix=/data-postgis/pgsql/plugin/geos
make
make install
echo "/data-postgis/pgsql/plugin/geos/lib" > /etc/ld.so.conf.d/geos-3.6.1.conf
ldconfig
1.3 gdal
wget http://download.osgeo.org/gdal/2.1.2/gdal-2.1.2.tar.gz
tar -xf gdal-2.1.2.tar.gz
cd gdal-2.1.2
./configure --prefix=/data-postgis/pgsql/plugin/gdal
make
make install
echo "/data-postgis/pgsql/plugin/gdal/lib" > /etc/ld.so.conf.d/gdal-2.1.2.conf
ldconfig
2. 编译postgis安装包
2.1 编译安装
wget http://postgis.net/stuff/postgis-2.5.3dev.tar.gz
tar -xvzf postgis-2.5.3dev.tar.gz
cd postgis-2.5.3dev
./configure --prefix=/data-postgis/pgsql/plugin/postgis --with-pgconfig=/data-postgis/pgsql/bin/pg_config --with-geosconfig=/data-postgis/pgsql/plugin/geos/bin/geos-config --with-gdalconfig=/data-postgis/pgsql/plugin/gdal/bin/gdal-config --with-projdir=/data-postgis/pgsql/plugin/proj
make
make install
这里完成需要重新创建一个新的postgis_25
数据库,详细参见postgresql部署3部分的-初始化数据库。否则启动/重启后一直提示找不到数据库。
2.2 安装扩展插件
# 切换postgres用户
su - postgres
# 登录PG数据库
psql
# 创建一个数据库
create database postgis;
# 切换到postgis库中
\c postgis
# 显示一下扩展模块
\dx
运行如下sql内容
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
--CREATE EXTENSION fuzzystrmatch;
--CREATE EXTENSION postgis_tiger_geocoder;
做到这里就完成的插件的安装。