[英]prisma can't connect to postgresql
我曾多次嘗試將 Prisma 與 postgreSQL 連接起來。 prisma 顯示此錯誤消息:“錯誤:未定義:“postgresql://postgres:password@localhost:5432/linker”中的端口號無效)”。
-棱鏡/.env
DATABASE_URL=postgresql://postgres:password@localhost:5432/linker
-schema.prisma
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
所以,首先,我檢查了端口號是否正確,5432 是正確的,因為我使用的是默認端口號。 我還檢查了 postgresql.conf 文件,該文件設置為“listen_address="*"”、“port=5432”。
我進入 pgAdmin4 並查看了服務器的屬性。 端口號為 5432,如下圖所示,用戶名設置為“postgres”。
不知道為什么prisma連接不上
我錯過了什么嗎?
確保在.env
文件中的DATABASE_URL
中,特殊字符被替換為百分比編碼。
例如,如果您的用戶名或密碼包含@
字符,則應將其替換為等效的百分比編碼,即%40
。 對於#
它是%23
等等。 請參閱下面的列表。
以下是常用特殊字符的百分比編碼:
特殊字符 | 百分比編碼 |
---|---|
! |
%21 |
# |
%23 |
$ |
%24 |
% |
%25 |
& |
%26 |
' |
%27 |
( |
%28 |
) |
%29 |
* |
%2A |
+ |
%2B |
, |
%2C |
/ |
%2F |
: |
%3A |
; |
%3B |
= |
%3D |
? |
%3F |
@ |
%40 |
[ |
%5B |
] |
%5D |
newline |
%0A 或%0D 或%0D%0A |
space |
%20 |
" |
%22 |
% |
%25 |
- |
%2D |
. |
%2E |
< |
%3C |
> |
%3E |
\ |
%5C |
^ |
%5E |
_ |
%5F |
` |
%60 |
{ |
%7B |
| |
%7C |
} |
%7D |
~ |
%7E |
£ |
%C2%A3 |
円 |
%E5%86%86 |
對於遇到此問題的任何人,請參閱上面關於答案的評論!
從 db 密碼(托管在 AWS RDS 上)中刪除符號為我解決了這個問題。
您應該將密碼轉換為 URL 編碼格式,以便在數據庫連接字符串中使用它。
接受的答案是正確的。
但我想展示一個程序化且簡單的解決方案,因為手動替換密碼中的特殊字符很容易出錯。
您的機器上安裝了 NodeJS(顯然,因為您正在嘗試使用 Prisma)
打開終端並啟動 NodeJS 進程(當前目錄無關緊要):
node
然后輸入這個,按回車:
new URLSearchParams({pass: "YOUR_PASSWORD_WITH_SPECIAL_CHARACTERS"}).toString().substring(5)
結果,您將獲得密碼的 URL 編碼版本打印到控制台:
'YOUR_PASSWORD_URL_ENCODED'
復制它(不帶引號)並在您的數據庫連接字符串中使用它作為您的密碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.