我现在使用planetscale无服务器数据库服务器
我的主要网络服务器是由Cloud Run 构建的
https://planetscale.com/docs/concepts/secure-connections
他们正在无条件地强制ssl/tl。现在,我的云运行使用https。我还注册了一个域名。我还能使用行星级服务器吗?
他们告诉我在Linux上键入mysql--ssl mode=VERIFY_IDENTITY--ssl ca=/etc/ssl/certs/ca-certificates.crt。
然而,通过ssh连接到云运行是不可能的。这两种产品不兼容吗?没有工作机会?
我对这种网络基础设施非常薄弱,我只写代码,我真的需要帮助。
Error: Error in connector: Error querying the database: Error querying the database: Error querying the database: Server error: `ERROR HY000 (1105): unknown error: Code: UNAVAILABLE
server does not allow insecure connections, client must use SSL/TLS
---编辑
我的后端语言是NodeJS,它做的事情就像下面的
.ENV文件
DATABASE_URL='mysql://xxxxxx:*****@aws-eu-west-1.connect.psdb.cloud/dbName?ssl={"rejectUnauthorized":true}'
棱镜
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
referentialIntegrity = "prisma"
}
await prisma.post.findMany({
take: 20,
skip: 0,
orderBy: { //...do query
它在localhost:8080上工作得很好,只有上传到Cloud Run后,它才会出现问题
在.env
文件上,您需要修改数据库url以附加以下内容:
&sslcert=/etc/ssl/certs/ca-certificates.crt
所以它看起来像:
DATABASE_URL='mysql://xxxxxx:*****@aws-eu-west-1.connect.psdb.cloud/dbName?ssl={"rejectUnauthorized":true}&sslcert=/etc/ssl/certs/ca-certificates.crt'
但是,当您在Cloud Run中运行代码时,为了使其发挥作用,在构建Docker映像时,您需要确保证书安装到/etc/ssl/certs
或您想要使用的任何路径。