如何从外部连接部署在AWS EC2实例上的PostgreSQL数据库
让AWS EC2上的PostgreSQL允许外部访问的操作步骤
1. 修改PostgreSQL监听配置(postgresql.conf)
- 找到配置文件路径(不同系统/版本路径有差异:Ubuntu示例路径为
/var/lib/postgresql/<版本号>/main/postgresql.conf,CentOS示例路径为/var/lib/pgsql/<版本号>/data/postgresql.conf) - 编辑文件,将
listen_addresses = 'localhost'修改为listen_addresses = '*'(允许所有IP监听,也可指定特定IP) - 重启PostgreSQL服务生效:
sudo systemctl restart postgresql
2. 配置访问权限规则(pg_hba.conf)
- 打开同目录下的
pg_hba.conf文件 - 添加外部访问规则,格式为:
host <数据库名> <用户名> <允许的IP段> md5- 示例1(允许所有IP访问指定库和用户):
host mydb myuser 0.0.0.0/0 md5 - 示例2(仅允许特定IP段访问):
host mydb myuser 192.168.1.0/24 md5
- 示例1(允许所有IP访问指定库和用户):
- 再次重启PostgreSQL服务:
sudo systemctl restart postgresql
3. 调整EC2安全组入站规则
- 登录AWS控制台,进入目标EC2实例的安全组设置页
- 添加一条入站规则:
- 类型:自定义TCP
- 端口范围:填写PostgreSQL端口(默认5432,若修改过则填对应端口)
- 源:按需填写
0.0.0.0/0(允许所有外部IP)或指定IP段
- 保存规则
4. 测试外部连接
- 使用你提供的命令测试,替换为实际参数:
psql -h <EC2实例公网IP/弹性IP> -d <dbname> -U <username> -p <PostgreSQL_port> - 提示:若EC2未绑定弹性IP,公网IP会在实例重启后变更,建议绑定弹性IP保持固定访问地址
内容的提问来源于stack exchange,提问作者ashique
相关产品推荐
相关产品推荐

