我正在啟動(dòng)一個(gè)全新的 PlanetScale 支持項(xiàng)目,并使用 Prisma 設(shè)置。我按照此官方文檔上的說明進(jìn)行操作(除了更改數(shù)據(jù)庫名稱),在本地代理到數(shù)據(jù)庫后,我發(fā)現(xiàn)自己無法運(yùn)行 npx prisma db Push
命令,出現(xiàn)以下錯(cuò)誤:
server does not allow insecure connections, client must use SSL/TLS
我對(duì)數(shù)據(jù)庫設(shè)置非常陌生,在此之前我從來不知道我需要配置任何這些連接,因?yàn)槲艺J(rèn)為它們是作為我正在使用的數(shù)據(jù)庫設(shè)置的一部分來處理的。
我知道我通過 Prisma 使用的 mySql 在對(duì)數(shù)據(jù)庫執(zhí)行任何交互之前需要 SSL 或 TLS,但我還沒有找到任何方法來為我的環(huán)境進(jìn)行設(shè)置。
我已經(jīng)看到有關(guān)將 ?tls={true}
添加到我的 DATABASE_URL
末尾的引用,但這沒有任何作用。此外,鑒于提供的 DATABASE_URL
是由 PlanetScale 提供的
DATABASE_URL='mysql://un5pbmobnc73muwvbo77:************@us-east.connect.psdb.cloud/*******?ssl={"rejectUnauthorized":true}'
我嘗試將 {"rejectUnauthorized":true}
更改為 {"rejectUnauthorized":false}
。這也沒有改變什么。
涉及對(duì)象的更復(fù)雜的解決方案是導(dǎo)致我的數(shù)據(jù)庫完全找不到的參數(shù)。
我知道 SSL 已被棄用,我不應(yīng)該使用它,但我不僅不知道如何正確地將 TLS 添加到我的 mySQL,而且正如您可能已經(jīng)確定的那樣,我發(fā)現(xiàn)自己有些無法完全掌握其實(shí)現(xiàn)的概念。
將 ?ssl={"rejectUnauthorized":true}
替換為 ?sslaccept=strict
。下面是一個(gè)例子。
DATABASE_URL="mysql://xxxx:yyyy@ap-northeast.connect.psdb.cloud/zzzz?sslaccept=strict"
詳細(xì)信息寫在下面。
https://www.prisma.io/docs/concepts/數(shù)據(jù)庫連接器/mysql#arguments
祝你好運(yùn)!