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

同服务器运行Aiogram Telegram bot连接PostgreSQL报asyncpg授权错误如何解决?

PostgreSQL连接权限配置解决方案

错误原因

你当前仅在pg_hba.conf中配置了本地PC的IP白名单,当Bot运行在服务器本地时,若数据库连接字符串填写的是服务器公网IP,PostgreSQL会识别到连接来源为服务器自身的公网IP,不在已配置的白名单规则内,因此触发报错。

配置步骤

方案一:本地回路连接(更推荐,性能更高更安全)

Bot和PostgreSQL部署在同一台服务器,优先走本地回路无需走公网,操作如下:

  • 修改Gino的数据库连接配置,将原来填写的服务器公网IP替换为127.0.0.1或localhost
  • 编辑pg_hba.conf文件,添加本地回路白名单规则:
    # IPv4本地规则
    host    all     all     127.0.0.1/32    scram-sha-256
    # 若系统默认解析localhost为IPv6地址,补充如下规则
    host    all     all     ::1/128         scram-sha-256
    
    若你的PostgreSQL版本较旧,使用MD5认证,将scram-sha-256替换为md5即可。

方案二:保留公网IP连接

若你需要继续使用服务器公网IP作为数据库连接地址,直接在pg_hba.conf中添加服务器自身公网IP的白名单即可:

host    all     all     你的服务器公网IP/32    scram-sha-256

生效配置

修改完pg_hba.conf后无需重启PostgreSQL服务,执行重载命令即可生效:
sudo systemctl reload postgresql
也可进入psql命令行执行SELECT pg_reload_conf();完成重载。

校验项

  • 确认pg_hba.conf中的认证方式和你数据库用户的加密方式一致,避免出现密码认证失败问题
  • 若你修改过PostgreSQL默认端口,确认连接字符串中的端口配置和postgresql.conf中port参数一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:24:03