San*_*anx 7 postgresql psql password
我在 Azure 中有一个 postgresql 数据库
在passwd中的字符串中包含特殊字符这样的:
)mvd99/iyH_=ag=Por/W}%%aKY^ygt+,sC7%%P?APOU
Run Code Online (Sandbox Code Playgroud)
psql --dbname=postgresql://db_user@mydemoserver:)mvd99/iyH_=ag=Por/W}%%aKY^ygt+,sC7%%P?APOU@mydemoserver.postgres.database.azure.com:5432/mydb
Run Code Online (Sandbox Code Playgroud)
执行 psql 命令时,它显示以下错误:
Run Code Online (Sandbox Code Playgroud)psql: invalid percent-encoded token: "iyH_=ag=Por/W}%%aKY^ygt+,sC7%%P"
我已经尝试将 passwd 字符串放在引号中,但它不起作用
我还有什么其他选择?我无法更改密码
我对使用 psql 客户端很感兴趣,因为我必须做非常大的备份
您必须对所有有问题的字符使用 URI 转义。
对于此用户:
CREATE ROLE "weird@name" PASSWORD '\/ @&?' LOGIN;
Run Code Online (Sandbox Code Playgroud)
你可以这样登录:
psql postgresql://weird%40name:%5C%2F%20%40%26%3F@localhost:5432/test
Run Code Online (Sandbox Code Playgroud)
文档中有它:
百分比编码可用于在任何 URI 部分中包含具有特殊含义的符号,例如替换
=为%3D。