尝试将本地IP添加至Azure PostgreSQL服务器时遇getaddrinfo ENOTFOUND错误
解决Azure PostgreSQL灵活服务器连接故障
1. 修复getaddrinfo ENOTFOUND域名解析错误
- 直接从Azure门户复制服务器的完整FQDN(格式类似
your-server-name.postgres.database.azure.com),粘贴到VSCode扩展中,避免手动输入导致拼写错误 - 本地终端执行
nslookup <你的服务器完整FQDN>:- 返回正常IP地址 → 域名解析无问题;
- 解析失败 → 检查本地DNS设置,或切换网络(比如用手机热点排除本地网络DNS故障)
2. 处理网络设置被禁用的问题
通过App Service创建的PostgreSQL灵活服务器默认采用虚拟网络集成模式,因此门户内的防火墙设置会被锁定,需通过以下方式调整:
方案A:切换为公共访问模式(允许IP白名单)
注意:此操作需重启服务器,会短暂中断服务
- 登录Azure门户,进入目标PostgreSQL灵活服务器
- 打开网络页面,点击顶部的切换网络模式
- 选择公共访问(允许IP地址),确认后重启服务器
- 重启完成后回到网络页面,即可看到防火墙设置选项,点击添加我的IP自动将本地IP加入白名单
方案B:虚拟网络内添加访问规则
若不想切换网络模式,可通过VPN/Azure Bastion接入虚拟网络,或配置NAT规则将本地IP映射到虚拟网络允许的范围(适合生产环境)
3. 绕开VSCode扩展的连接验证
如果VSCode扩展仍有问题,先用原生工具测试连接:
- 用
psql命令行测试:psql "host=<服务器完整FQDN> port=5432 dbname=postgres user=<管理员用户名> password=<你的密码> sslmode=require" - 或使用pgAdmin图形工具,手动配置服务器连接,确保开启SSL(Azure PostgreSQL强制要求SSL)
4. 排查其他潜在问题
- 检查本地网络是否屏蔽5432端口:执行
telnet <服务器完整FQDN> 5432,能连通则端口正常 - 确认管理员用户名格式正确:必须为
<用户名>@<服务器前缀>(例如admin@my-pg-server)
内容的提问来源于stack exchange,提问作者code writer 3000
相关产品推荐
相关产品推荐

