如何解决AWS Linux下安装PostGIS时出现的58P01错误?
AWS Linux 系统 PostgreSQL 13 缺失 postgis.control 报错解决方案
错误根因:你遇到的58P01报错本质是操作系统未安装对应PostgreSQL 13版本的PostGIS系统依赖包,CREATE EXTENSION命令只能在数据库层面加载已存在的扩展,无法自动安装系统级的扩展控制文件。
操作步骤
- 第一步:安装对应PostgreSQL 13版本的PostGIS系统包
针对Amazon Linux 2 执行命令:
针对Amazon Linux 2023 执行命令:sudo amazon-linux-extras enable postgresql13 sudo yum install -y postgis31_13 postgis31_13-client
注意:必须安装名称中包含sudo dnf install -y postgresql13-postgispostgresql13或后缀带_13的PostGIS包,安装其他版本的PostGIS包会将控制文件写入其他版本PostgreSQL的目录中,无法被PG13识别 - 第二步:验证控制文件是否存在
执行命令检查文件是否生成在目标目录:
命令正常返回文件路径即为安装成功ls /usr/pgsql-13/share/extension/postgis.control - 第三步:重新执行扩展创建语句
回到数据库客户端执行命令即可完成PostGIS安装:
可执行以下语句验证安装结果:CREATE EXTENSION postgis;SELECT PostGIS_Version();
特殊场景排查
如果你是自行编译安装的PostgreSQL 13,不要使用yum/dnf安装预编译的PostGIS包,需要自行下载对应版本的PostGIS源码编译,编译时指定--with-pgconfig参数指向你自定义安装路径下的pg_config二进制文件即可。
内容的提问来源于stack exchange,提问作者hg628193hg
相关产品推荐
相关产品推荐

