使用Postgresql URL连接字符串,格式为:
postgresql://user:secret@localhost
如何处理该字符串中的特殊字符(例如 $ ),以便在连接到postgres数据库时它实际起作用?
我尝试过简单的URL编码,所以例如,“test $”变成“test%24”......但这似乎是一个问题,因为我在尝试时遇到“致命:密码验证失败”错误使用它。
答案 0 :(得分:9)
请参阅文档中的Connection URIs。
在你的问题中,有些事情似乎不太正确:
仅从版本9.2
开始支持postgres的URI,因此9.1
客户端根本不应该工作。或者您正在使用实现连接URI的客户端。
支持百分号编码。按医生:
百分比编码可用于包括具有特殊含义的符号 在任何URI部分中。
美元字符甚至不需要百分比编码。
试过9.3:
sql> alter user daniel password 'p$ass';
$ psql 'postgresql://daniel:p$ass@localhost/test'
作品
$ psql 'postgresql://daniel:p%24ass@localhost'
作品
psql 'postgresql://daniel:pass@localhost/test'
按预期失败:密码错误。
答案 1 :(得分:0)
也许您的输入Shell的编码不同,而$
不是%24
。
在https://www.urlencoder.org/
提示:
如果您使用alter user "username" password 'p$ass''word'
设置/更改密码,
单引号必须用另一个单引号屏蔽。