微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tbase symbol lookup error: ./psql: undefined symbol: PQsetErrorContextVisibility

环境

tbase: 2.15.12.3 或者 tbase 2.15.18.5.1 (独立版)

操作系统: centos7.9/rhel7.6

psql来源: tbase_pgxz-5.06.1.1-i.x86_64

问题现象(报错)

使用psql登录数据库报错如下

16:31:16 [root@ddcw21 bin]#./psql -h 192.168.101.51 -p 11345 -U u1 -d postgres
Password for user u1: 
./psql: symbol lookup error: ./psql: undefined symbol: PQsetErrorContextVisibility

原因分析

此报错为libpq.so版本不对

因为本地环境还安装了开源pg库postgresql-libs-9.2.24-4.el7_8.x86_64, 此库包含了libpq.so.5 , 而tbase_pgxz的psql命令认使用的系统库的libpq(也就是开源的pg-lib), 导致版本不对

16:39:11 [root@ddcw21 bin]#ldd psql | grep libpq
	libpq.so.5 => /lib64/libpq.so.5 (0x00007fce6f5c4000)
16:40:36 [root@ddcw21 bin]#rpm -qf /lib64/libpq.so.5
postgresql-libs-9.2.24-4.el7_8.x86_64
16:40:43 [root@ddcw21 bin]#rpm -ql tbase_pgxz | grep libpq.so
/usr/local/install/tbase_pgxz/lib/libpq.so
/usr/local/install/tbase_pgxz/lib/libpq.so.5
/usr/local/install/tbase_pgxz/lib/libpq.so.5.10

解决办法

方法1 (推荐)

添加tbase_pgxz库到系统库

echo '/usr/local/install/tbase_pgxz/lib' >> /etc/ld.so.conf
ldconfig
ldconfig -p | grep libpq.so

方法2

卸载postgresql-libs

rpm -e postgresql-libs

原文地址:https://cloud.tencent.com/developer/article/2029396

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐