使用 ssl 运行 postgreSQL 13.2。
我需要从需要连接 URI 的第三方应用程序连接到数据库,但它不起作用。因此,我使用具有相同凭据的两种不同格式测试了与 psql 的连接。一个有效,一个没有。
以下命令将我以 myuser 用户身份登录到 mydb:
# psql -U myuser -d mydb -h 127.0.0.1 -p 5432 -W
Password:
psql (13.2 (Debian 13.2-1.pgdg100+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
mydb=>
Run Code Online (Sandbox Code Playgroud)
但是这个命令失败了:
# psql postgresql://myuser:MYPASSWORD@127.0.0.1:5432/mydb?sslmode=require
psql: error: FATAL: password authentication failed for user "myuser"
Run Code Online (Sandbox Code Playgroud)
我正在使用完全相同的凭据。我已经验证了 10 多次。删除“sslmode=require”并不能解决问题。
我的 pg_hba.conf 文件包含:
host mydb myuser 127.0.0.1/32 password
Run Code Online (Sandbox Code Playgroud)
我把它放在我的 pg_hba.conf 文件的第一行,所以它不会挂在任何其他行上。
我究竟做错了什么?
Zep*_*rus 12
我使用的密码碰巧包含%d0
. 使用参数登录时效果很好。但是,如果您使用连接 URI,它会被解释为百分比编码的值。巧合的是,我的密码包含百分号,后跟有效的十六进制数字。
更改密码或正确地对连接 URI 进行百分比编码是解决此问题的方法。有几个字符必须在连接 URI 中进行百分比编码。
归档时间: |
|
查看次数: |
348 次 |
最近记录: |