本地环境NextJS及Prisma连接PlanetScale DB报ERROR HY000 (1105)错误求助
解决Next.js本地连接PlanetScale数据库的"produced zero addresses"错误
核心原因
这个错误本质是本地无法解析到PlanetScale数据库的有效地址,生产环境正常说明线上配置没问题,问题出在本地的连接方式或配置上。
解决步骤
- 确认PlanetScale CLI状态
本地必须通过PlanetScale CLI创建的隧道连接数据库,不能直接用生产公网地址。先执行pscale auth status检查是否已登录,未登录则运行pscale auth login完成授权。然后启动隧道:pscale connect <你的数据库名> <分支名> --port 3306,保持该终端窗口开启。 - 核对本地配置
本地.env文件中的DATABASE_URL要改为隧道的本地地址:mysql://root@127.0.0.1:3306/<你的数据库名>,无需添加密码。同时检查prisma/schema.prisma的datasource部分,确保url指向该环境变量。 - 重启服务与隧道
关闭当前的Next.js开发服务和PlanetScale隧道,重新启动隧道后再启动Next.js服务(npm run dev),避免进程残留导致的连接异常。 - 更新Prisma客户端
执行npx prisma generate重新生成客户端,再尝试npx prisma db pull验证是否解决问题。 - 排查DNS问题
如果以上步骤无效,可尝试将本地DNS切换为8.8.8.8,排查是否因本地DNS解析失败导致地址无法获取。
内容的提问来源于stack exchange,提问作者Ian MacFarlane
相关产品推荐
相关产品推荐

