使用以下格式的 Postgresql URL 连接字符串:
postgresql://user:secret@localhost
我如何处理该字符串中的特殊字符(例如,$)以便它在我连接到我的 postgres 数据库时真正发挥作用?
我试过简单地对其进行 URL 编码,例如,“test$”变成“test%24”……但这似乎是个问题,因为我在尝试时收到“FATAL: password authentication failed”错误使用它。
最佳答案
参见 Connection URIs在文档中。
您的问题中有些地方似乎不太正确:
postgres 仅从
9.2
版本开始支持 URI,因此对于9.1
客户端来说根本无法工作。或者,您正在使用自己实现连接 URI 的客户端。支持百分号编码。根据文档:
Percent-encoding may be used to include symbols with special meaning in any of the URI parts.
美元字符甚至不需要百分比编码。
尝试使用 9.3:
sql> 更改用户 daniel 密码 'p$ass';
$ psql 'postgresql://daniel:p$ass@localhost/test'
作品
$ psql 'postgresql://daniel:p%24ass@localhost'
作品
psql 'postgresql://daniel:pass@localhost/test'
如预期的那样失败:密码错误。
关于postgresql - 如何处理 Postgresql URL 连接字符串密码中的特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23353623/