我正在启动一个全新的 PlanetScale 支持的项目,并使用 Prisma 设置。我按照此官方文档上的说明进行操作(除了更改数据库名称),在本地代理到数据库后,我发现自己无法运行npx prisma db push
命令,出现以下错误:
server does not allow insecure connections, client must use SSL/TLS
Run Code Online (Sandbox Code Playgroud)
我对数据库设置非常陌生,在此之前我从来不知道我需要配置任何这些连接,因为我认为它们是作为我正在使用的数据库设置的一部分来处理的。
我知道我通过 Prisma 使用的 mySql 在对数据库执行任何交互之前需要 SSL 或 TLS,但我还没有找到任何方法来为我的环境进行设置。
我看到有人提到要?tls={true}
在我的末尾添加内容DATABASE_URL
,但这没有任何作用。此外,鉴于所提供的内容DATABASE_URL
是由 PlanetScale 提供的
DATABASE_URL='mysql://un5pbmobnc73muwvbo77:************@us-east.connect.psdb.cloud/*******?ssl={"rejectUnauthorized":true}'
Run Code Online (Sandbox Code Playgroud)
我尝试更改{"rejectUnauthorized":true}
为 {"rejectUnauthorized":false}
. 这也没有改变什么。涉及对象的更复杂的解决方案是导致我的数据库完全找不到的参数。
我知道 SSL 已被弃用,我不应该使用它,但我不仅不知道如何正确地将 TLS 添加到我的 mySQL,而且正如您可能已经确定的那样,我发现自己有些无法完全掌握其概念完全实施。
我正在尝试连接到 PlanetScale 上的 MySQL 服务器,但无法连接,因为它需要 SSL。
这是他们的文档,但不清楚它说了什么。 https://planetscale.com/docs/concepts/secure-connections
这是连接 URL:DATABASE_URL='mysql://co30rXXXXXXX:pscale_pw_XXXXXXX@hoqx01444p30.us-east-4.psdb.cloud/restaurant?ssl={"rejectUnauthorized":true}'
这是我运行时从终端看到的内容yarn run migration-run
纱线运行v1.22.18 $ npx prisma migrate dev 从.env加载的环境变量 从prisma/schema.prisma加载的Prisma模式数据源“db”:MySQL数据库“restaurant”位于“hoqx0XXXXX.us-east-4.psdb.cloud:3306” ”
错误:迁移引擎错误:未知错误:代码:UNAVAILABLE 服务器不允许不安全连接,客户端必须使用 SSL/TLS
error 命令失败,退出代码 1。 info 请访问 https://yarnpkg.com/en/docs/cli/run以获取有关此命令的文档。
有没有人尝试过从本地主机上的 Node.js 连接到 PlanetScale DB?我尝试了 Stackoverflow 的其他一些建议,但似乎不起作用。
我在下一个 js 应用程序上使用 planestscale 和 prisma,我试图在 vercel 上托管该应用程序,但它在本地主机上运行,没有任何错误,但一旦我进入 depolyment,我就会计算此错误 Authentication failed against database server at `aws.connect。 psdb.cloud`,为“name”提供的数据库凭据无效。
我向 vercel 添加了相同的环境变量,并且该变量位于 .env 文件中
DATABASE_URL='mysql://<um>:<pw>Q@aws.connect.psdb.cloud/<db-name>?sslaccept=strict'
Run Code Online (Sandbox Code Playgroud)
注意:我替换了占位符
这是我的 schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
relationMode = "prisma"
}
Run Code Online (Sandbox Code Playgroud)
为什么它在部署中的工作方式不一样
当前在尝试将架构更改推送到 Planetscale 数据库时遇到问题。不确定我可能做错了什么。我对 prisma 相当陌生,所以我希望得到一些帮助:)。
generator client {
provider = "prisma-client-js"
binaryTargets = ["native"]
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model User {
id String @id @default(uuid())
notes Note[]
}
model Note {
id String @id @default(uuid())
userId String @unique
user User @relation(fields: [userId], references: [id])
}
Run Code Online (Sandbox Code Playgroud)
尝试过迁移。如果一对多的关系被删除,错误就会消失。