暂无图片
在 pg17中 ,这个错误怎么解决
我来答
分享
暂无图片 匿名用户
在 pg17中 ,这个错误怎么解决

postgres=# CREATE EXTENSION postgres_fdw;
ERROR: could not load library “/usr/pgsql-17/lib/postgres_fdw.so”: /usr/pgsql-17/lib/postgres_fdw.so: undefined symbol: ExecGetJunkAttribute

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
梧桐

常见原因及解决方法:
1. postgres_fdw.so 与 PostgreSQL 主程序版本不匹配
postgres_fdw.so 是针对某个特定版本的 PostgreSQL 编译的。如果你现在运行的是 PostgreSQL 17,但这个 .so 文件是从旧版本(如 PG16)中复制或保留下来的,就会出问题。

解决方法:确认并重新安装正确版本的 postgres_fdw 扩展。
sudo yum reinstall postgresql17-contrib

2. 多个 PostgreSQL 版本混用
检查你是否有多个 PostgreSQL 版本安装,并可能引用了错误的 lib 路径。
解决方法:确认环境变量和执行路径都是指向 /usr/pgsql-17/ 下的程序和库。
which psql
echo $PATH

3. 自编译 PostgreSQL 或 postgres_fdw 扩展导致 ABI 不一致
如果你自己编译过 PostgreSQL 或扩展模块,而没清理旧的 .so 文件,就可能出现此类问题。
解决方法:清理老的 build 文件,重新编译扩展(确保使用的是 PostgreSQL 17 的 pg_config)
export PATH=/usr/pgsql-17/bin:$PATH
make clean
make
sudo make install

💡 验证方法:
运行以下命令确认 PostgreSQL 和扩展的版本一致:
pg_config --version
ls -l /usr/pgsql-17/lib/postgres_fdw.so

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏