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

asyncpg连接PostgreSQL 13抛出ConnectionRefusedError错误如何解决

问题根因

你当前遇到的ConnectionRefusedError是asyncpg无法和PostgreSQL服务建立网络连接导致的,核心有两个直接原因:1. 连接参数缺失主机和端口配置;2. PostgreSQL服务侧未允许连接。

解决步骤

  • 第一步:确认PostgreSQL服务正常运行
    按下Win+R输入services.msc打开服务列表,找到postgresql-x64-13服务,确认状态为正在运行,如果未启动则右键选择启动。
  • 第二步:修复asyncpg连接参数
    你当前的连接配置仅指定了库名、用户名、密码,未指定数据库服务的主机地址和端口,Windows环境下asyncpg默认不会走本地127.0.0.1连接,需要手动补全参数。修改NCA.py中create_db_pool方法的代码:
    async def create_db_pool(self):
        self.db = await asyncpg.create_pool(
            host="127.0.0.1", # 本地开发填127.0.0.1,远程部署填PG服务的公网/内网IP
            port=5432, # PostgreSQL默认端口为5432,如果你修改过端口请替换为实际端口
            database="nca",
            password="hehe",
            user="postgres"
        )
    
  • 第三步:检查PostgreSQL访问配置
    1. 找到PostgreSQL安装目录下的data/postgresql.conf文件,修改listen_addresses配置,本地开发可改为listen_addresses = '*',保存后重启PostgreSQL服务。
    2. 找到同目录下的pg_hba.conf文件,在末尾添加一行规则允许本地访问:
      host    all     all     127.0.0.1/32    scram-sha-256
      
      保存后再次重启PostgreSQL服务。
  • 第四步:提前验证数据库连通性
    打开pgAdmin或psql命令行工具,使用你配置的用户名、密码、库名尝试连接,确认可以正常访问后再启动机器人代码。

额外注意事项

  • 你需要提前在PostgreSQL中手动创建名为nca的数据库,否则连接参数正确也会报错库不存在。
  • 你当前在机器人__init__方法中用run_until_complete初始化连接池的写法不符合discord.py的异步规范,后续稳定运行建议将数据库初始化逻辑移到on_ready事件中执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:54:04