无法加载库“/usr/lib/pgsql”/plpgsql.so“”未定义符号(&U):PinP

2024-10-01 09:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在CentOS 5上运行了一段时间了,没有问题。在

然而,昨天我安装了tracbug tracker,它最终迫使我通过Yum运行一个完整的更新,它更新了一堆包。在

我似乎搞不清到底是什么问题,花在谷歌上的时间似乎也没能带来什么想法。在

有没有人遇到过同样的问题,或者有人能指出一种更好地识别出发生了什么的方法?在

非常感谢!在

完全错误读数:

[Wed May 11 17:52:53 2011] [error] davical: LOG: always: Query: QF: SQL error "58P01" - ERROR: could not load library "/usr/lib/pgsql/plpgsql.so": /usr/lib/pgsql/plpgsql.so: undefined symbol: PinPortal"

检查文件是否存在

[@shogun~]#tree-a/usr/lib/pgsql/| grep“plpgsql”

|——plpgsql.so在

安装的pg版本

[@shogun~]#pg_config | grep“版本”

版本=PostgreSQL 8.1.23

[@shogun postgresql-8.3.8]#yum list installed | grep'post'

postgresql.i386 8.1.23-1.已安装el5_6.1

已安装postgresql-devel.i386 8.1.23-1.el5_6.1

已安装postgresql-libs.i386 8.1.23-1.el5_6.1

已安装postgresql-python.i386 8.1.23-1.el5_6.1

已安装postgresql-server.i386 8.1.23-1.el5\u 6.1


Tags: 版本sopostgresqllibusrerrorgreppg
1条回答
网友
1楼 · 发布于 2024-10-01 09:21:00

我以前也遇到过这个问题,虽然用的是8.4而不是8.1,但问题是一样的,我相信。在

最近对PostgreSQL所有支持的维护分支进行的一次小升级在服务器中引入了PinPortal函数,并让PL/pgSQL使用它。因此,如果使用新版本中的plpgsql.so与旧版本的服务器一起使用,则会出现此错误。在您的例子中,更改发生在8.1.21和8.1.22之间。即使您安装的所有软件包都显示较新的版本,您也需要重新启动服务器以确保您实际使用的是较新的版本。在

问题是,一旦您安装了更新的PL/pgSQL,它将被启动的下一个会话使用,但是新的服务器二进制文件将在您重新启动服务器之前使用。因此,如果您的升级过程没有立即重新启动服务器,那么一旦有人试图使用PL/pgSQL,就会不可避免地出现这些错误。如果这确实是问题所在,您可能需要回顾一下服务器没有重新启动的原因。在

相关问题 更多 >