PostgreSQL问题: expected authentication request from server, but received v

28 篇文章 1 订阅
8 篇文章 0 订阅
本文讲述了在Linux虚拟机上,C++程序无法连接PostgreSQL14数据库的问题。问题源于openGauss库路径被加入LD_LIBRARY_PATH,导致程序误用openGauss库而非PostgreSQL库。解决方案是避免将openGauss库路径加入环境变量,或确保执行程序的用户与openGauss安装用户分离,以防止库冲突。
摘要由CSDN通过智能技术生成

(一)现象

某台Linux虚拟机上的C++程序无法连接PostgreSQL14数据库 ⚠️
报错:expected authentication request from server, but received v

并观察到下列现象:

  1. 同台主机同一个程序,改连接本地openGauss3.0.0数据库正常。
  2. 同台主机上的Java程序可以正常连接PostgreSQL14数据库。
  3. 其它虚拟机/实体机的其它程序均可正常连接PostgreSQL14数据库。

(二)分析

其实拖了很久才搞懂的……

经过分析,该虚拟机上安装了openGauss3.0.0服务端。
设置了:export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
导致C++程序找库的时候没找到PostgreSQL的库,而是错找成了openGauss的库,

(三)解决

  • 不要将openGauss的库目录加入LD_LIBRARY_PATH,但是openGauss服务端就无法启动了。
  • 执行C++程序的用户,和安装openGauss的用户分开,防止互相干扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值