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。

### PostGIS 中 `postgis-3.so` 文件缺失的解决方案 当遇到 `postgis-3.so` 文件缺失的问题时,通常是因为 PostgreSQL 数据库缺少必要的 PostGIS 扩展安装或者路径配置错误。以下是详细的分析和解决方法: #### 1. 验证 PostGIS 是否已正确安装 在尝试解决问题之前,应先确认 PostGIS 已经成功安装到系统中。可以通过以下命令验证是否存在 `postgis-3.so` 文件: ```bash find /usr/lib/postgresql/ -name "postgis-3*.so" ``` 如果该文件不存在,则说明 PostGIS 的共享对象文件尚未被正确部署。 #### 2. 安装或更新 PostGIS 软件包 对于基于 Debian 或 Ubuntu 的 Linux 发行版,可以使用以下命令来安装或修复 PostGIS 包: ```bash sudo apt-get update sudo apt-get install postgis postgresql-<version>-postgis-3 ``` 其中 `<version>` 是指当前使用的 PostgreSQL 版本号,例如 `14` 表示 PostgreSQL 14[^1]。 #### 3. 创建并启用 PostGIS 扩展 即使已经安装PostGIS,仍需手动创建数据库中的扩展才能正常使用其功能。执行如下 SQL 命令以激活 PostGIS 支持: ```sql CREATE EXTENSION IF NOT EXISTS postgis; CREATE EXTENSION IF NOT EXISTS postgis_topology; ``` 上述操作可通过 shell 进行自动化处理,具体方式已在引用材料中提供。 #### 4. 检查动态链接库路径 有时尽管安装完成但仍报错找不到 `.so` 文件,这可能是由于 PostgreSQL 动态链接器未能找到正确的目录位置所致。此时可编辑 PostgreSQL 的配置文件 (`postgresql.conf`) 并添加自定义的共享库路径: ```plaintext shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll,$libdir/postgis-3' ``` 重启 PostgreSQL 后再次测试连接情况。 #### 5. 替代方案——升级至更高版本 考虑到兼容性和稳定性问题,建议考虑将整个环境迁移到最新稳定版本上运行。比如从旧版 PostgreSQL 升级到较新的 LTS (长期支持) 版本,并同步匹配对应的 PostGIS 插件版本[^3]。 --- ### 总结 通过以上步骤应该能够有效解决因 `postgis-3.so` 缺失引发的一系列异常现象。务必按照顺序逐一排查直至恢复正常工作状态为止。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiger-hcx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值