【发布时间】:2020-06-11 11:02:30
【问题描述】:
我有一个安装了 postgis 的数据库,但它不再工作了:
# SELECT PostGIS_full_version();
ERROR: could not access file "$libdir/postgis-2.5": No such file or directory
CONTEXT: SQL statement "SELECT public.postgis_lib_version()"
PL/pgSQL function postgis_full_version() line 26 at SQL statement
我找到了其他建议运行ALTER EXTENSION postgis UPDATE; 的答案,所以我这样做了,但没有效果:
my_db=# ALTER EXTENSION postgis UPDATE;
NOTICE: version "2.5.4" of extension "postgis" is already installed
ALTER EXTENSION
my_db=#
my_db=# SELECT PostGIS_full_version();
ERROR: could not access file "$libdir/postgis-2.5": No such file or directory
CONTEXT: SQL statement "SELECT public.postgis_lib_version()"
PL/pgSQL function postgis_full_version() line 26 at SQL statement
有人知道如何解决这个问题吗?
(我在 Ubuntu 20.04 上使用 Posrgresql 版本 12.3。我最近从 Ubuntu 19.10 升级到 20.04,我*认为这是开始出现问题的时候)
[编辑]
我在 apt 中搜索,发现这个包我还没有安装:postgresql-12-postgis-2.5。所以在安装之后 (sudo apt install postgresql-12-postgis-2.5) 我重新启动了 postgresql (sudo service postgresql restart) 并再次尝试,但我仍然得到同样的错误。
【问题讨论】:
-
你能检查一下提到的目录是否存在,如果存在,有哪些权限(尝试使用
pg_config | grep ^PKGLIBDIR获取libdir完整路径)。 -
@pifor -
pg_config | grep ^PKGLIBDIR的结果是PKGLIBDIR = /usr/lib/postgresql/12/lib。该目录中有很多.so文件,但没有类似postgis-2.5或postgis的文件。顺便说一句:我最近从 Ubuntu 19.10(我认为有 postgres 11)升级到了 Ubuntu 20.04(现在运行 postgres 12)。这和它有什么关系吗?我检查了/usr/lib/postgresql/11/lib/,里面也没有类似postgis的东西。 -
抱歉,我不知道 Ubuntu 升级会如何影响 PostgreSQL(我知道更多 CentOS)。你是在版本 12 中创建了自己的 PG 集群还是 Ubunto 升级做到了?
-
@pifor - 我什么都没做。 Ubuntu 完成了整个升级。
-
我认为 Ubuntu 默认不会在现有数据库中安装 Postgis。对于 PG 11:Postgis 是如何安装的?你安装了吗?您是否从安装了 Postgis 的源数据库运行 pg_restore ?
标签: linux postgresql gis postgis