Postgresql错误:无法加载库plpgsql.so未定义符号

时间:2015-04-22 10:11:03

标签: postgresql

我的Postgresql安装正常,但是当我调用某个特定函数时,我得到一个未定义的符号HeapTupleHeaderGetDatum,并且plpgsql.so将无法加载。

这将是一个问答,这个Q&amp; A的原因是这里的当前答案没有出现在谷歌搜索结果中,我希望这将有助于其他人 < / p>

2 个答案:

答案 0 :(得分:4)

重新启动Postgresql数据库,

您已经更改了postgresql的版本并忘记重新启动。

可以通过运行

来检查
lbox:/>postgres --version 
postgres (PostgreSQL) 9.1.15

Vs以上。

select version();

pg = #select version();

                         version
PostgreSQL 9.1.12 on x86_64-suse-linux-gnu, compiled by ....

答案 1 :(得分:1)

对于许多人来说,更可能的原因是动态链接器找到的libpq比编译psql之类的客户端程序的更早。 ldd psql(或客户端遇到的任何问题)通常会帮助表明是否属于这种情况。

顺便说一下,热替换二进制文件不是一个好主意。最好停止服务器,替换二进制文件,然后启动服务器。对于Linux上的大多数事情都是如此。您可以替换二进制文件,但除非他们完全100%二进制兼容,否则可能会导致 kaboom 。即使这样,如果您unlink()(例如rm)旧的二进制文件,然后创建新的二进制文件,它就是安全的。如果你就地覆盖,你将修改内存映射的二进制后备运行代码,这将产生令人兴奋和丰富多彩的结果。