PostgreSQL ERROR: could not access file "$libdir/postgis-2.5"
PostgreSQL ERROR: could not access file "$libdir/postgis-2.5"
我有一个安装了 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
) 并再次尝试,但我仍然得到同样的错误。
升级到 Ubuntu 20.04 后,我也遇到了同样的情况。
通常postgresql的重大升级不会替换之前的版本,因为数据库数据库要转储和恢复。新版本与旧版本一起安装,并在新服务器上分配了不同的端口。由用户将旧数据库迁移到新版本。
就我而言,由于某种原因,升级删除了以前 postgresql 版本中的 postgis-2.5 库,在旧数据库中留下了损坏的 postgis 安装(当然,在新数据库中没有安装。)
容易混淆和连接到错误的服务器;至少,我很容易感到困惑,因此即使在为新的 postgresql 版本安装了 postgis 之后,也会收到相同的错误消息。我在检查 pg_lsclusters 和了解哪个服务器正在侦听哪个端口时发现了问题。
我想 post 将此作为评论,但我没有足够的声誉。我有一个非常相似的问题,并详细解释了如果超过 here 我是如何解决的。希望对你也有帮助。
我有一个安装了 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
) 并再次尝试,但我仍然得到同样的错误。
升级到 Ubuntu 20.04 后,我也遇到了同样的情况。
通常postgresql的重大升级不会替换之前的版本,因为数据库数据库要转储和恢复。新版本与旧版本一起安装,并在新服务器上分配了不同的端口。由用户将旧数据库迁移到新版本。
就我而言,由于某种原因,升级删除了以前 postgresql 版本中的 postgis-2.5 库,在旧数据库中留下了损坏的 postgis 安装(当然,在新数据库中没有安装。)
容易混淆和连接到错误的服务器;至少,我很容易感到困惑,因此即使在为新的 postgresql 版本安装了 postgis 之后,也会收到相同的错误消息。我在检查 pg_lsclusters 和了解哪个服务器正在侦听哪个端口时发现了问题。
我想 post 将此作为评论,但我没有足够的声誉。我有一个非常相似的问题,并详细解释了如果超过 here 我是如何解决的。希望对你也有帮助。