PlanetScaleDb Prisma Setup - server不允许不安全连接,客户端必须使用SSL/TLS.&



我正在启动一个全新的PlanetScale支持的项目,带有Prisma设置。我按照这个官方文档上的说明(除了更改数据库的名称),在本地代理到数据库后,我发现自己无法运行npx prisma db push命令,得到以下错误:

server does not allow insecure connections, client must use SSL/TLS

我对数据库设置非常陌生,在此之前我从来没有想过我需要配置任何这些连接,因为我认为它们是作为我正在使用的数据库设置的一部分处理的。

我知道mySql,我通过Prisma使用的,在它对数据库执行任何交互之前需要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。下面是一个例子:

DATABASE_URL="mysql://xxxx:yyyy@ap-northeast.connect.psdb.cloud/zzzz?sslaccept=strict"

详情如下。

https://www.prisma.io/docs/concepts/database-connectors/mysql参数祝你好运!

对于Laravel应用程序,您的";文件看起来应该像这样:

  • DB_CONNECTION = mysql
  • DB_HOST = XXXX
  • DB_PORT = XXXX
  • DB_DATABASE = XXXX
  • DB_USERNAME = XXXX
  • DB_PASSWORD = XXXX
  • MYSQL_ATTR_SSL_CA = XXXX

注意:您可以通过以下步骤从您的Planetscale帐户获得这些凭据:

  1. 单击要获取凭据的数据库。
  2. 点击"概览"菜单选项。
  3. 点击"获取连接字符串"在右下角。
  4. 从"连接"下拉选项,选择"Laravel">
  5. 从您的".env"文件。
  6. 运行"php artisan optimize:clear"命令,就可以开始了。

恭喜你!

相关内容

  • 没有找到相关文章

最新更新