【问题标题】:prisma Error: p1001: Can't reach database server at `db.xocheossqzkirwnhzxxm.supabase.co`:`5432`prisma 错误:p1001:无法访问位于 `db.xocheossqzkirwnhzxxm.supabase.co` 的数据库服务器:`5432`
【发布时间】:2022-11-30 04:35:58
【问题描述】:

我开始学习 prisma 和 supabase,并希望在我的 Next.js 应用程序中实现这两种技术。运行npx prisma migrate dev --name init后,我遇到了以下错误:

Environment variables loaded from .env                                                                                                                                            
Prisma schema loaded from prisma\schema.prisma
Datasource "db": PostgreSQL database "postgres", schema "public" at "db.xocheossqzkirwnhzxxm.supabase.co:5432"

Error: P1001: Can't reach database server at `db.xocheossqzkirwnhzxxm.supabase.co`:`5432`

Please make sure your database server is running at `db.xocheossqzkirwnhzxxm.supabase.co`:`5432`.

我的数据库密码不包含任何特殊字符这是我的 schema.prisma 文件:

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Home{
  id        String @id @default(cuid())
  image     String?
  title     String
  description String
  price     Float
  guests    Int
  beds      Int
  baths     Int
  createdAt DateTime @default(now())
  updateAt  DateTime @updatedAt
}

这是我的 .env:

DATABASE_URL="postgresql://postgres:[YOUR-PASSWORD]@db.xocheossqzkirwnhzxxm.supabase.co:5432/postgres"

【问题讨论】:

  • 对于这样的 can't reach 错误,您的用户名和密码从未发挥作用。某些东西阻止了 prisma 通过网络访问您的 PostgreSQL 服务器。也许路上有防火墙。也许 PostgreSQL 正在使用不同的端口。也许它根本没有运行。
  • 我在 supabase 中创建了我的数据库....让我尝试关闭我的防火墙
  • 关闭我的防火墙不起作用@O.Jones

标签: postgresql next.js prisma supabase-database


【解决方案1】:

我在使用 Prisma 和 PlanetScale (MySQL) 以及 Windows 上的 Docker (WSL) 的 Sveltekit 应用程序时遇到了类似的问题。我收到了同样的错误,但是当我直接从终端运行它或者通过 mysql cli 连接时都没有这个问题。

解决方案

我确保我的 Docker节点版本与 WSL (16.15) 上的相同,我注意到其他人在不同版本的 Node 上遇到过这个问题,所以值得探讨一下。然后我将 connection_timeout=300 添加到我的 SQL URL以防止连接超时过早。

我在我的另一个 answer on Stackoverflow 中包含了更多详细信息。

【讨论】:

  • 我有同样的问题。不幸的是,添加 connection_timeout 仍然没有帮助超时。如果我使用 cli mysql 或 pscale 进行连接,它会起作用,但如果我尝试通过 Prisma 访问它,则会由于某种原因而失败。超级奇怪,仍然没有找到解决方案。似乎共同因素是 Prisma + PlanetScale?
【解决方案2】:

我和 supabase 有同样的问题,我只是切换到一个私有网络。我正在使用我的大学 Wifi。尝试使用您的热点。

也许 Docker 托管在公共网络中?

我不确定这是否对你有帮助,但我花了几个月的时间试图修复它,也许对其他人有用。

【讨论】:

    猜你喜欢
    • 2022-07-13
    • 2021-09-29
    • 2022-08-08
    • 2022-10-30
    • 2022-08-14
    • 2021-10-25
    • 2018-10-12
    • 1970-01-01
    • 2013-05-12
    相关资源
    最近更新 更多