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

在Next.js PostgreSQL示例项目运行迁移时遭遇ECONNRESET错误求助

调试Next.js 13 Postgres迁移ECONNRESET错误的方案

核心排查步骤

  • 验证PostgreSQL服务状态
    先确认本地Postgres服务是否正常运行:
    • Windows:打开服务管理器,找到PostgreSQL服务,确认状态为“正在运行”
    • macOS/Linux:执行命令 sudo systemctl status postgresql(macOS可通过brew services list检查),确保服务处于活跃状态
  • 核对连接字符串参数
    你的连接字符串为 DATABASE_URL=postgresql://user_name:my_password@localhost:5432/postgres?ssl=false,需逐一确认:
    • 将user_name替换为实际的Postgres用户名(默认是postgres)
    • 确认my_password对应该用户的正确密码,可通过终端执行 psql -U user_name -d postgres 测试登录,能成功进入数据库则密码无误
    • 若修改过Postgres默认端口,需将5432替换为实际端口号
  • 直接测试数据库连接
    写一个简单的Node.js脚本跳过Next.js项目,直接测试Postgres连接:
    const { Client } = require('pg');
    const client = new Client({
      connectionString: 'postgresql://user_name:my_password@localhost:5432/postgres?ssl=false'
    });
    
    async function testConn() {
      try {
        await client.connect();
        console.log('数据库连接成功');
        await client.end();
      } catch (err) {
        console.error('连接失败:', err);
      }
    }
    
    testConn();
    
    运行脚本后若仍报错,说明问题出在数据库连接本身,和Next.js迁移流程无关
  • 检查Postgres配置文件
    找到Postgres安装目录下的pg_hba.conf文件,确认允许本地IP连接:
    • 确保存在类似 host all all 127.0.0.1/32 scram-sha-256 的配置行(认证方式根据Postgres版本调整,旧版本可能是md5)
    • 修改配置后重启Postgres服务生效
  • 排查端口拦截问题
    本地防火墙、杀毒软件可能会拦截5432端口的连接,暂时关闭这类软件后重试迁移命令

迁移命令确认

确保执行的是示例项目指定的迁移命令,比如使用Prisma的情况:

yarn prisma migrate dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:53:11