我已经尝试连接Prisma与postgreSQL几次。Prisma显示此错误消息:“错误:未定义:“postgresql://postgres:密码@本地主机:5432/链接器”中的端口号无效。
- 错误x1c 0d1x
- 棱镜/.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”。
我进入pgAdmin 4,看到了服务器的属性。端口号是5432,如下图所示,用户名设置为“postgres”。
我不知道为什么prisma不能连接
是不是漏了什么?
3条答案
按热度按时间vshtjzan1#
用百分比编码替换特殊字符
确保在
.env
文件的DATABASE_URL
中,用户名和密码中的特殊字符被替换为百分号编码。例如,在您的数据库URL中,如果您的用户名或口令包含
@
字符,则应将其替换为相应的百分比编码,即%40
。对于#
,则为%23
,依此类推。请参阅下面的列表。百分比编码
以下是常用特殊字符的百分比编码:
| 特殊字符|百分比编码|
| - -|- -|
|
!
|%21
||
#
|%23
||
$
个|%24
个||
%
|%25
个||
&
个|%26
||
'
个|%27
||
(
|%28
个|| x1米20英寸|
%29
||
*
个|%2A
个||
+
个|x1米25英寸1x||
,
个|%2C
个||
/
个|%2F
个|| x1米30英寸|
%3A
||
;
|%3B
|| x1米34英寸|x1米35英寸|
| x1米36英寸1x| x1米37英寸1x|
| x1米38英寸1x| x1米39英寸1x|
| x1米40英寸|
%5B
个||
]
个|%5D
个||
newline
个|%0A
或%0D
或%0D%0A
||
space
个|%20
个|| x1米50英寸|
%22
|| x1个月52个月1x|
%25
个||
-
个|x1米55英寸1x||
.
个|%2E
个||
<
个|%3C
个||
>
个|%3E
||
\
个|%5C
个||
^
个|%5E
个||
_
个|%5F
|| ```个|60%|
|
{
个|x1米70英寸||
|
个|%7C
个||
}
个|%7D
个||
~
个|%7E
个||
£
个|%C2%A3
个||
円
个|x1米80英寸|v8wbuo2f2#
对于任何遇到这个问题的人,请看上面关于答案的评论!
从数据库密码(托管在AWS RDS上)中删除符号为我解决了这个问题。
qhhrdooz3#
您应该将密码转换为URL编码格式,以便在数据库连接字符串中使用它。
接受的答案正确。
但我想展示一个编程和简单的解决方案,因为手动替换密码中的特殊字符很容易出错。
您的机器上已经安装了NodeJS(显然,因为您正在尝试使用Prisma)
打开一个终端并启动一个NodeJS进程(当前目录无关紧要):
然后键入以下内容,按Enter键:
因此,您将在控制台上打印出密码的URL编码版本:
复制它(不带引号)并在数据库连接字符串中将其用作密码。