Ubuntu 22.04安装mongo_fdw后执行CREATE EXTENSION报错求解
解决PostgreSQL执行
CREATE EXTENSION mongo_fdw时提示$libdir/mongo_fdw不存在的问题 问题根源
你的PostgreSQL通过Anaconda安装,当前仅将mongo_fdw的扩展配置文件(.control、.sql)放到了Anaconda的sharedir/extension目录,但核心共享库文件mongo_fdw.so并未安装到PostgreSQL指定的libdir(/home/qgis/anaconda3/lib),导致执行CREATE EXTENSION时找不到依赖库。
解决步骤
1. 重新编译并指定Anaconda的pg_config
进入mongo_fdw源码目录,重新执行编译安装流程,确保指向Anaconda环境下的pg_config:
# 进入mongo_fdw源码目录 cd /path/to/mongo_fdw # 清理之前的编译文件 make clean # 重新生成配置文件 ./autogen.sh # 指定Anaconda的pg_config路径完成配置 ./configure --with-pgconfig=/home/qgis/anaconda3/bin/pg_config # 编译并安装 make sudo make install
2. 验证共享库是否安装到位
检查Anaconda的PostgreSQL lib目录是否存在mongo_fdw.so:
ls /home/qgis/anaconda3/lib/mongo_fdw.so
如果文件不存在,手动将编译生成的mongo_fdw.so(一般在源码目录的src子文件夹下)复制到该目录,并调整权限:
sudo cp /path/to/mongo_fdw/src/mongo_fdw.so /home/qgis/anaconda3/lib/ sudo chown qgis:qgis /home/qgis/anaconda3/lib/mongo_fdw.so
3. 再次执行扩展创建命令
回到PostgreSQL命令行,重新执行:
CREATE EXTENSION mongo_fdw;
注意事项
- 确保编译时使用的pg_config版本与你的PostgreSQL版本(12.9)完全匹配,避免版本不一致导致兼容性问题
- 使用
sudo make install时,注意sudo环境是否能识别Anaconda路径,若出现找不到pg_config的情况,可直接使用绝对路径执行安装命令
内容的提问来源于stack exchange,提问作者Dennis
相关产品推荐
相关产品推荐

