我正在尝试使用CLI(psql)连接到我的PostgreSQL 11.3服务器。我需要在命令行中设置密码(不能使用环境变量PGPASSWORD
)。
我正在尝试使用URL这样访问数据库:
psql postgresql://username@server:password@server.full.name:5432/db_name
如您所见,我的登录名包含在({@
)中,例如我的登录名是:username@server
。
我收到错误消息:
psql: Invalid port number: "password@server.full.name:5432/db_name"
我想psql CLI首先在(@
)处解析作为用户名和服务器名称之间的分隔符。是psql CLI错误吗?
如何在URL中传递此类用户名(包含@
)以正确启动psql?
谢谢!
更新1:
我的同事建议在登录名和密码之间使用%40
而不是冒号:
:
psql postgresql://username@server%40password@server.full.name:5432/db_name
但这没有效果(我使用Windows 10 cmd.exe)
答案 0 :(得分:0)
经过一番调查,我找到了解决方案(为了他人的利益):
psql postgresql://username%40server:password@server.full.name:5432/db_name
如果您是从cmd
或bat
文件开始的,请使用如下格式屏蔽百分号(%
):
psql postgresql://username%%40server:password@server.full.name:5432/db_name