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

如何解决Django容器连接Azure PostgreSQL的pg_hba.conf错误?

解决Django Docker容器连接Azure PostgreSQL的认证及pg_hba.conf错误

核心问题分析

你遇到的两个错误指向两个关键问题:

  • FATAL: password authentication failed for user "welzijn":用户密码认证失败,可能是密码错误、用户权限不足或认证方式不匹配
  • FATAL: no pg_hba.conf entry for host ..., no encryption:Azure PostgreSQL未允许当前主机的无加密连接,或Django连接配置未适配SSL设置

注意:Azure托管的PostgreSQL不允许直接修改pg_hba.conf和postgresql.conf,你在本地机器修改这些文件完全无效——数据库实例运行在Azure云端,所有连接控制需通过Azure门户配置。

分步解决方法

1. 修正Azure PostgreSQL云端安全配置

  • 防火墙规则检查:
    登录Azure门户,进入你的PostgreSQL实例,找到「连接安全性」→「防火墙规则」,添加Docker容器所在主机的公网IP(临时可添加0.0.0.0/0测试,生产环境务必删除),确保Azure允许该IP访问数据库。

  • SSL设置适配:
    即便关闭了require_secure_transport,也需要让Django明确禁用SSL连接。在Django的数据库配置OPTIONS中添加对应参数:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': os.environ.get('DB_NAME'),
            'USER': os.environ.get('DB_USER'),
            'PASSWORD': os.environ.get('DB_PASSWORD'),
            'HOST': os.environ.get('DB_HOST'),
            'PORT': os.environ.get('DB_PORT'),
            'OPTIONS': {
                'sslmode': 'disable'
            }
        }
    }
    
  • 用户认证方式确认:
    Azure PostgreSQL默认使用scram-sha-256认证,确保welzijn用户的密码是该方式加密的。可在Azure门户重置密码,重置时会自动套用正确加密规则。

2. 核对本地配置准确性

  • .env变量检查:
    确保.env.prod中的DB_USER、DB_PASSWORD、DB_HOST、DB_NAME完全正确:

    • 密码含特殊字符(如@、!)时,用单引号包裹避免shell解析错误
    • DB_HOST必须是Azure PostgreSQL实例的完整FQDN(格式:<instance-name>.postgres.database.azure.com)
  • Docker Compose变量传递检查:
    确认docker-compose-deploy.yml正确加载.env.prod并注入Django容器:

    services:
      web:
        env_file:
          - .env.prod
        # 其他配置...
    

3. 直接测试数据库连接(排除Django问题)

进入Django容器,用psql直接测试连接,确认数据库本身可访问:

docker exec -it <你的Django容器名称> psql -h <DB_HOST> -U welzijn -d <DB_NAME>

连接失败则是数据库端问题;连接成功再排查Django配置错误。

4. 重置用户密码(解决认证失败)

若上述步骤无效,直接在Azure门户重置welzijn用户密码:

  1. 进入PostgreSQL实例→「服务器管理员」→「重置密码」
  2. 设置符合要求的新密码
  3. 等待1-2分钟生效后,重新测试Django连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:57:28