You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Helm部署对接Azure托管PostgreSQL的DATABASE_URL配置问题

问题原因

  1. 第一次URI解析报错的核心原因:Azure PostgreSQL的用户名格式为<账号名>@<实例名>,你直接把带@的用户名放到URI的用户信息段,导致整个连接串出现两个@符号,URI解析器错误地将第一个@识别为用户信息和主机地址的分隔符,最终格式校验失败。
  2. 第二次用户名无效报错的原因:你修改后的连接串完全移除了用户名和密码字段,PostgreSQL服务接收不到合法的身份认证信息,因此返回格式错误。

正确配置方案

URI规范要求用户信息段内的特殊字符必须做URL编码,因此你需要先将用户名中的@转义为%40,再按照标准格式拼接连接串即可。
对应你场景的正确DATABASE_URL配置如下:

name: DATABASE_URL
# 原有内部PostgreSQL配置
# value: "postgres://{{ .Values.postgresql.postgresqlUsername }}:$(POSTGRESQL_PASSWORD)@{{ .Release.Name }}-postgresql"
# 对接Azure托管PostgreSQL的正确配置
value: "postgres://nmbrs%40postgresql-nmb-psfc-stag:$(POSTGRESQL_PASSWORD)@postgresql-nmb-psfc-stag.postgres.database.azure.com:5432/postfacto-staging-db"

你提问中提到的原配置里{{ .Release.Name }}-postgresql对应的是数据库的主机地址字段,这里直接替换为你Azure PostgreSQL实例的完整域名postgresql-nmb-psfc-stag.postgres.database.azure.com即可。

注意事项

  • 如果你的PostgreSQL密码包含@、/、:、?、*等URI特殊字符,也需要做URL编码后再存入K8s的Secret中,避免再次出现解析错误。
  • 请确认Azure PostgreSQL的防火墙规则已经放通你K8s集群的出口IP,否则会出现连接超时的问题。

内容的提问来源于stack exchange,提问作者bgarcial

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:27:03