PostGIS系列之-环境安装
前言
-
PostGIS是一个基于PostgreSQL数据库的一个空间数据库。本次在Centos7.3中安装PostgreSQL13.1和PostGIS3.1。
-
安装PostgreSQL
-
安装PostGIS
一、安装PostgreSQL
安装PostgreSQL yum仓库
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
查看可用的postgresql版本
yum list | grep postgresql
安装postgresql
yum -y install postgresql13
yum install -y postgresql13-server
yum install -y postgresql13-contrib
postgresql安装后会默认创建一个postgres的系统用户,用户名和用户组名都为:postgres
初始化数据库
初始化数据库的时候默认是将数据存储在/var/lib/pgsql/版本号/data目录。这里就使用默认的存储路径。
- 使用默认的存储路径初始化数据库:
/usr/pgsql-13/bin/postgresql-13-setup initdb
- 使用自定义的存储路径初始化数据库(可选):
#home目录下创建文件夹postgres_data
mkdir /home/postgres_data
#执行所有者
chown postgres:postgres /home/postgres_data
#分配权限
chmod 750 /home/postgres_data
#切换到postgres用户
su - postgres
#指定数据库存储路径初始化数据库
/usr/pgsql-13/bin/initdb -D /home/postgres_data
#root用户下操作,将其中的 PGDATA 修改为新的数据目录/home/postgres_data/:
exit
vim /usr/lib/systemd/system/postgresql-13.service
启动服务以及设置开机自启动
#启动服务
systemctl start postgresql-13
#设置开机启动
systemctl enable postgresql-13
#查看数据库状态
systemctl status postgresql-13
修改数据库配置
注意:如果以上是自定义的存储路径那修改配置就要到新的路径下改配置文件,以下是默认的路径。
修改 listen_addresses 和 port
vim /var/lib/pgsql/13/data/postgresql.conf
修改允许任何客户端远程访问
vim /var/lib/pgsql/13/data/pg_hba.conf
在最后添加一行
host all all 0.0.0.0/0 md5
重启数据库
systemctl restart postgresql-13
登入数据库
切换到postgres用户
su - postgres
登入数据库, 数据库管理员用户名为postgres,没有密码。
psql -U postgres
修改管理员密码
postgres=# ALTER USER postgres with encrypted password '密码';
退出到root用户
postgres=# \q
exit
重启数据库
systemctl restart postgresql-13
开放服务器5432端口,然后就可以在本地连接服务器。具体自己操作。我这里是阿里云。我到控制台添加端口规则即可。如果是自己的服务器也很简单,防火墙中开放5432端口。
连接成功,这里使用的是默认的数据库,超级管理员用户。等下使用postgis的时候会重新创建一个数据库用户以及一个新的database,作为空间数据库。
二、安装PostGIS
安装工具包
如果已经有了就不用装了
yum install -y wget net-tools epel-release
安装postgis
yum install -y postgis31_13 postgis31_13-client
安装扩展工具
可以先不装,postgis有很多的扩展工具。有用到的时候在装也可以
yum install -y ogr_fdw13
yum install -y pgrouting_13
创建数据库
作为空间数据库。
先用超级用户登入
psql -U postgres
创建一个数据库新用户:
用户名为:postgis
postgres=# CREATE USER postgis WITH PASSWORD '密码';
创建数据库:
数据库名为:spatial_db 所有者为刚创建的用户postgis
postgres=# CREATE DATABASE spatial_db OWNER postgis;
将数据库的所有权限赋予用户
postgres=# GRANT ALL PRIVILEGES ON DATABASE spatial_db TO postgis;
退出
postgres=# \q
数据库创建完成,这时候spatial_db 还是一个普通的数据库。
安装postgis扩展
在普通数据库中安装postgis扩展,使得普通数据库变为空间数据库,使用超级用户postgres登入刚刚创建的数据库spatial_db。注意:一定要用超级用户。后面使用的时候可以使用postgis用户了。
psql -U postgres -d spatial_db
为这个库安装postgis扩展
create extension postgis;
create extension postgis_topology;
验证
验证是否成功
select postgis_full_version();
三、远程连接
接下来就可以使用远程的工具navicat连接数据库进行操作了。
连接新的空间数据库。
总结
1.后续就是创建空间表等等等了,本次就是安装了一下环境。
2.欢迎互相学习,交流讨论,本人的微信:huangchuanxiaa。