PSQL忽略端口参数

时间:2017-09-19 21:16:07

标签: psql

我正在尝试使用PSQL连接到在非默认端口上运行的数据库:

PSQL SYNOPSIS
       psql [option...] [dbname [username]]

psql -h wrds-pgdata.wharton.upenn.edu –p 9737 -W myDatabase myAccountName 
psql: warning: extra command-line argument "myDatabase" ignored
psql: warning: extra command-line argument "myAccountName" ignored
Password for user 9737:

请注意,只是忽略-p命令。不知何故,psql假设9737是用户名!让我们试着更明确一点:

psql -h wrds-pgdata.wharton.upenn.edu –p 9737 -d myDatabase -U myAccountName -W
psql: warning: extra command-line argument "–p" ignored
psql: warning: extra command-line argument "9737" ignored
Password for user myAccountName:

不,那也不好! 我让它工作的唯一方法是:

PGPORT=9737; export PGPORT
psql -h wrds-pgdata.wharton.upenn.edu -d myDatabase -U myAccountName -W

我正在使用psql(PostgreSQL)9.5.8。任何想法为什么普通的命令行不起作用?

2 个答案:

答案 0 :(得分:0)

这是最奇怪的。我之前多次以这种方式使用psql并让它发挥作用。从阅读man psql开始,你的命令似乎很好。我的版本也是9.5.8但我没有确切的环境可供测试。

我唯一可以怀疑的是,域的一部分被解释为参数;

WRDS -p gdata.wharton.upenn.edu

你能试试吗;

psql -h "wrds-pgdata.wharton.upenn.edu" –p 9737 -d myDatabase -U myAccountName -W

此外,该手册还指出--port=9737仅适用于-p。你可能会有更多的运气。

答案 1 :(得分:0)

该特定错误很奇怪...但是以下内容对我有用。最后一个参数“ wrds”是wrds存储所有内容的数据库的名称。

psql -h wrds-pgdata.wharton.upenn.edu –p 9737 -U myUserBame -W wrds