我正在启动一个全新的 PlanetScale 支持项目,并使用 Prisma 设置。我按照此官方文档上的说明进行操作(除了更改数据库名称),在本地代理到数据库后,我发现自己无法运行 npx prisma db Push
命令,出现以下错误:
server does not allow insecure connections, client must use SSL/TLS
我对数据库设置非常陌生,在此之前我从来不知道我需要配置任何这些连接,因为我认为它们是作为我正在使用的数据库设置的一部分来处理的。
我知道我通过 Prisma 使用的 mySql 在对数据库执行任何交互之前需要 SSL 或 TLS,但我还没有找到任何方法来为我的环境进行设置。
我已经看到有关将 ?tls={true}
添加到我的 DATABASE_URL
末尾的引用,但这没有任何作用。此外,鉴于提供的 DATABASE_URL
是由 PlanetScale 提供的
DATABASE_URL='mysql://un5pbmobnc73muwvbo77:************@us-east.connect.psdb.cloud/*******?ssl={"rejectUnauthorized":true}'
我尝试将 {"rejectUnauthorized":true}
更改为 {"rejectUnauthorized":false}
。这也没有改变什么。
涉及对象的更复杂的解决方案是导致我的数据库完全找不到的参数。
我知道 SSL 已被弃用,我不应该使用它,但我不仅不知道如何正确地将 TLS 添加到我的 mySQL,而且正如您可能已经确定的那样,我发现自己有些无法完全掌握其实现的概念。
将
?ssl={"rejectUnauthorized":true}
替换为?sslaccept=strict
。下面是一个例子。详细信息写在下面。
https://www.prisma.io/docs/concepts/数据库连接器/mysql#arguments
祝你好运!