PostgreSQL错误:无法访问文件"$libdirpostgis-2.5"

问题描述 投票:0回答:1

我有一个安装了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)又试了一次,但我还是得到同样的错误。

linux postgresql gis postgis
1个回答
1
投票

我想把这个作为评论发布,但我没有足够的声誉。我有一个非常类似的问题,并详细解释了我如何解决,如果过 此处. 希望这也能帮到你。


1
投票

我也发生过同样的情况,升级到Ubuntu 20.04后。

通常postgresql的主要升级不会替换以前的版本,因为dabatase必须被转储和恢复。新的版本和旧的版本一起安装,并且在新的服务器上分配一个不同的端口。是由用户来迁移旧的数据库到新的版本。

我的情况是,升级时,不知道什么原因,把以前postgresql版本中的postgis-2.5库去掉了,导致旧数据库中的postgis安装坏了(当然,新数据库中也没有安装)。

这很容易让人迷惑,连接到错误的服务器;至少,我很容易迷惑,所以在安装了新版postgresql的postgis之后,也收到了同样的错误信息。我发现了问题,检查pg_lsclusters,了解哪个服务器在哪个端口监听。

© www.soinside.com 2019 - 2024. All rights reserved.