(一)现象
某台Linux虚拟机上的C++程序无法连接PostgreSQL14数据库 ⚠️
报错:expected authentication request from server, but received v
并观察到下列现象:
- 同台主机同一个程序,改连接本地openGauss3.0.0数据库正常。
- 同台主机上的Java程序可以正常连接PostgreSQL14数据库。
- 其它虚拟机/实体机的其它程序均可正常连接PostgreSQL14数据库。
(二)分析
其实拖了很久才搞懂的……
经过分析,该虚拟机上安装了openGauss3.0.0服务端。
设置了:export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
导致C++程序找库的时候没找到PostgreSQL的库,而是错找成了openGauss的库,
(三)解决
- 不要将openGauss的库目录加入
LD_LIBRARY_PATH
,但是openGauss服务端就无法启动了。 - 执行C++程序的用户,和安装openGauss的用户分开,防止互相干扰。