Linux Mint下用DBeaver备份PostgreSQL时libpq.so.5缺失报错
解决pg_dump找不到libpq.so.5导致备份失败的问题
环境信息
- 系统:Linux Mint 20.3
- 数据库客户端:DBeaver 22.1.4
- 操作场景:通过DBeaver备份PostgreSQL数据库
my_db时触发错误
错误日志
/run/user/1000/doc/65139af1/bin/pg_dump --verbose --host=localhost --port=5432 --username=postgres --format=p --file /home/my_user/dev/BACKUP/my_db_local/dump-my_db-202211161718.sql -n public my_db Task 'PostgreSQL dump' started at Wed Nov 16 17:18:29 EET 2022 /run/user/1000/doc/65139af1/bin/pg_dump: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory Task 'PostgreSQL dump' finished at Wed Nov 16 17:18:29 EET 2022 2022-11-16 17:18:29.831 - IO error: Process failed (exit code = 127). See error log. 2022-11-16 17:18:29.832 - java.io.IOException: Process failed (exit code = 127). See error log. at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.validateErrorCode(AbstractNativeToolHandler.java:242) at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.executeProcess(AbstractNativeToolHandler.java:223) at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.doExecute(AbstractNativeToolHandler.java:262) at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.lambda$0(AbstractNativeToolHandler.java:83) at org.jkiss.dbeaver.runtime.RunnableContextDelegate.lambda$0(RunnableContextDelegate.java:39) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)
解决方案
1. 检查并安装libpq5包
libpq.so.5是PostgreSQL客户端核心库文件,由libpq5包提供:
- 检查是否已安装:
dpkg -l | grep libpq5 - 若未安装,执行安装命令:
sudo apt update && sudo apt install libpq5
2. 修复库文件路径问题
如果已安装但仍报错,说明系统无法定位到库文件:
- 查找
libpq.so.5的实际存储路径:find / -name libpq.so.5 2>/dev/null - 临时将路径添加到系统库搜索路径(仅当前终端生效):
替换export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libpq/directory/path/to/libpq/directory为实际找到的路径,例如/usr/lib/x86_64-linux-gnu - 永久生效:将上述命令添加到
~/.bashrc或~/.profile文件末尾,执行source ~/.bashrc使设置立即生效。
3. 切换DBeaver使用系统自带的pg_dump
错误中调用的pg_dump来自DBeaver临时目录,可能与系统库版本不兼容:
- 打开DBeaver,点击顶部菜单
数据库->驱动管理器 - 在驱动列表中找到
PostgreSQL,双击进入编辑界面 - 切换到
文件标签,移除或禁用自带的pg_dump路径,添加系统默认的/usr/bin/pg_dump - 保存设置后重新执行备份任务
4. 验证修复效果
在终端执行以下命令,若能正常输出版本信息,说明问题已解决:
pg_dump --version
内容的提问来源于stack exchange,提问作者Alexei
相关产品推荐
相关产品推荐

