在AWS EC2托管的PostgreSQL中安装aws_s3扩展遇错求助
解决PostgreSQL安装aws_s3扩展时找不到.control文件的问题
可能原因及对应解决方案
1. 确认数据库是否为AWS RDS PostgreSQL
aws_s3和aws_commons是AWS RDS专属的PostgreSQL扩展,标准自建PostgreSQL环境默认没有这些文件。
- 如果是自建PostgreSQL:放弃安装这些扩展,改用以下替代方案导出到S3:
- 用
pg_dump导出数据库:pg_dump -d your_database_name -f backup_file.sql - 用AWS CLI将备份文件上传至S3:
aws s3 cp backup_file.sql s3://your-bucket-name/target-path/
- 用
2. 检查RDS PostgreSQL版本
AWS RDS仅在PostgreSQL 11及以上版本预装了aws_s3和aws_commons扩展。如果你的RDS实例版本低于11,需要先升级实例版本:
- 登录AWS控制台 → 进入RDS服务 → 选择目标实例 → 执行版本升级操作(注意先备份数据)
3. 验证扩展是否在RDS实例中可用
登录RDS PostgreSQL,执行以下SQL查询可用扩展:
SELECT * FROM pg_available_extensions WHERE name LIKE 'aws%';
- 如果结果中没有
aws_s3和aws_commons,说明当前实例版本不支持,需升级;如果有,尝试先单独安装aws_commons再安装aws_s3:CREATE EXTENSION aws_commons; CREATE EXTENSION aws_s3;
4. 检查RDS参数组配置
确保RDS实例的参数组中没有禁用扩展相关配置:
- 进入RDS控制台 → 目标实例 → 查看“配置”标签下的参数组 → 确认
shared_preload_libraries未排除aws_s3/aws_commons(这两个扩展不需要预加载,但特殊参数限制可能影响可用性)
内容的提问来源于stack exchange,提问作者DonB
相关产品推荐
相关产品推荐

