再创建外部表的时候,执行CREATE EXTENSION postgres_fdw;的时候,发生了以下问题。
我这边环境试验好用的解决办法:
1.参照这个解决办法,需要安装postgres相关得扩展包
ERROR:could not open extension control file “/usr/pgsql-12/share/extension/file_fdw.control“_mizuhokaga的博客-CSDN博客https://blog.csdn.net/qq_44831907/article/details/120314204也就是执行中的yum install postgresql13*(我的版本是13)
1.1然后发生下面这个问题。
提示Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist。
查找解决方案,参照了
修复: “Error: Failed to download metadata for repo appstream” – CentOS 8系统错误 - 腾讯云开发者社区-腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1966389CentOS8解决“Failed to download metadata for repo ‘appstream‘”错误_培根芝士的博客-CSDN博客https://blog.csdn.net/watson2017/article/details/122887710上两个解决方法。
主要原因是因为
CentOS Linux 8 已于 2021 年 12 月 31 日结束生命周期 (EOL)。这意味着 CentOS 8 将不再从 CentOS 官方项目获得开发资源。在 2021 年 12 月 31 日之后,如果您需要更新您的 CentOS,您需要将镜像更改为vault.centos.org,它们将被永久存档。或者,您可能想要升级到 CentOS Stream。
我是按照第一个博客参照的第二个方法解决的。修改镜像地址。
第1步:进入/etc/yum.repos.d/
目录。
cd /etc/yum.repos.d/
第 2 步:运行以下命令
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
2.1再次执行yum install postgresql13*
然后我觉得是因为机器上已经存在postgresql13的部分安装包。所以出现了下面这个问题。
然后按照上面的提示 将命令修改为yum --skip-broken install postgresql13*
再次执行。等待按照完成。
再次查看file_fdw和postgres_fdw文件都已经存在了。再次执行CREATE EXTENSION postgres_fdw;的时候执行成功了。