CentOS7.5安装Postgresql10.5和PostGIS

参考顺序:

  1. CentOS7.5安装Postgresql10.5和PostGISCentOS7.6安装Postgresq11和PostGIS
  2. CentOS7部署GeoServer
  3. CentOS7部署osm2pgsql
  4. GeoServer发布OSM地图

CentOS7 安装Postgres10.5和PostGIS

每次安装Postgresql总会有莫名其妙的问题,最好安装前先装好阿里和网易的yum源。

  • 系统:Centos7.5

一、安装Postgres10.5

1.首先安装PostgreSQL的rpm

yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y  

查看postgresql源

yum list | grep postgresql

安装postgresql10-contrib和postgresql10-server

yum install postgresql10-contrib postgresql10-server -y

这样会给我们的系统增加一个postgres用户

2.修改默认数据目录 
Postgresql默认的数据目录是/var/lib/pgsql/版本号/data目录,这要求你在/var下有足够的存储空间,我们这里将其换掉,假设/home的空间很大。

首先在/home下创建一个Postgresql的数据目录,指定所有者postgres同时分配权限

mkdir /home/postgresql_data
chown postgres:postgres /home/postgresql_data
chmod 750 /home/postgresql_data

设置环境变量

export PATH=/usr/pgsql-10/bin:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-10/lib
export PGDATA=/home/postgresql_data

切换到postgres用户,使用initdb初始化数据库,这样在/home/postgresql_data下会增加很多东西, 

修改/usr/lib/systemd/system/postgresql-10.service文件的内容,在#Location of database direcotry里面指定正确的PGDATA:

#Location of database directory
Environment=PGDATA=/home/postgresql_data

3.在root用户下配置数据库服务开机启动并立即启动数据库服务

systemctl enable postgresql-10.service
service postgresql-10 start
service postgresql-10 status

检查数据库状态,有绿色,没红色说明启动完成 

这个过程中出现过一个错误,启动失败:

我这边将/home/postgresql_data下的postmaster.pid删除再重启服务就好了

4.修改密码 
分为postgres用户密码和数据库密码,保持一致吧

passwd postgres

设置数据库密码:

su postgres
psql
ALTER USER postgres WITH PASSWORD '密码';

二、安装PostGIS

1.先安装几个工具包

yum  install wget net-tools epel-release -y

然后安装postgis

yum install postgis24_10 postgis24_10-client -y

安装拓展工具

yum install ogr_fdw10 -y
yum install pgrouting_10 -y

2.创建数据库osm_db

CREATE DATABASE osm_db OWNER postgres;

进入数据库

\c osm_db

安装PostGis扩展

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION ogr_fdw;

然后可以验证是否安装成功

SELECT postgis_full_version();

三、设置远程连接

1.修改配置文件 
首先修改/home/postgresql_data/pg_hba.conf,改为:

其次修改/home/postgresql_data/postgresql.conf,改为: 

之后重启服务

service postgresql-10 restart

2.开启防火墙

①开启防火墙对外端口服务

#开放postgresql服务
firewall-cmd --add-service=postgresql --permanent  

#或者开放5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent

#命令含义:

#--zone #作用域

#--add-port=5432/tcp #添加端口,格式为:端口/通讯协议

#--permanent #永久生效

②重启防火墙

#重载防火墙
firewall-cmd --reload

#或重启防火墙
systemctl restart firewalld.service

③查看已经对外开放的端口

firewall-cmd --list-ports

④其他相关命令

关闭防火墙:

systemctl stop firewalld.service

查看监听(Listen)的端口

netstat -lntp

检查端口被哪个进程占用

netstat -lnp|grep 8080

删除端口配置:

firewall-cmd --zone= public--remove-port=80/tcp --permanent

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值