PostgreSQL 15.4版本RDS中创建pg_graphql扩展失败求助
在AWS RDS PostgreSQL 15.4中安装pg_graphql扩展的解决方案
问题原因
AWS RDS PostgreSQL默认仅预装PostgreSQL官方维护的扩展,pg_graphql属于第三方社区扩展,并未包含在RDS的默认扩展库中,因此执行CREATE EXTENSION pg_graphql;时会提示找不到扩展控制文件。
解决步骤
1. 编译pg_graphql扩展文件
- 启动一台与RDS PostgreSQL版本(15.4)匹配的EC2实例,安装PostgreSQL 15.4开发包(如
postgresql15-devel)。 - 从pg_graphql官方源码仓库下载对应PostgreSQL 15.4的版本源码,进入源码目录执行编译安装命令:
make install - 编译完成后,会生成
pg_graphql.control、pg_graphql--<版本号>.sql和pg_graphql.so等文件,路径通常为/usr/pgsql-15/share/extension/和/usr/pgsql-15/lib/。
2. 上传扩展文件到S3
- 创建一个S3存储桶,将编译得到的所有pg_graphql相关文件上传到桶内的
extensions/目录下(目录结构可自定义,但后续配置需对应)。 - 配置S3桶的权限,允许RDS实例关联的IAM角色读取该桶内的文件。
3. 配置RDS参数组
- 创建或修改RDS实例的参数组,设置以下参数:
rds.extensions_bucket:填入你的S3桶名称rds.allowed_extensions:添加pg_graphql到现有值末尾(用逗号分隔多个扩展)
- 保存参数组后,重启RDS实例使参数生效。
4. 安装扩展
连接到RDS PostgreSQL实例,执行SQL命令:
CREATE EXTENSION pg_graphql;
注意事项
- 必须确保pg_graphql的版本与PostgreSQL 15.4完全兼容,避免因版本不匹配导致运行错误。
- 操作前务必备份RDS实例,防止配置失误造成数据损失。
- 如果使用RDS的多AZ部署,重启实例会触发故障转移,需提前规划操作时间。
内容的提问来源于stack exchange,提问作者Ayush Shah
相关产品推荐
相关产品推荐

