【问题标题】:PSQL ignores port parameterPSQL 忽略端口参数
【发布时间】:2017-09-19 21:16:07
【问题描述】:

我正在尝试使用 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。知道为什么普通命令行不起作用吗?

【问题讨论】:

  • 我遇到了和你一样的问题。无论我做什么,端口参数都会被完全忽略。你找到解决方案了吗?
  • @BlueMagma 不,我没有。我能够解决这个问题的唯一方法是将端口号导出到 PGPORT 变量,如上所述:PGPORT=9737;导出 PGPORT

标签: psql


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这是最奇怪的。我以前曾多次以这种方式使用过psql,并且可以正常工作。从阅读man psql 来看,您的命令似乎很好。我的版本也是 9.5.8,但我没有确切的环境来测试。

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

    wrds-pgdata.wharton.upenn.edu

    你可以试试;

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

    此外,手册指出 --port=9737-p 的替代品。你可能会有更多的运气。

    【讨论】:

      猜你喜欢
      • 2018-11-23
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 2019-04-01
      • 2018-01-05
      相关资源
      最近更新 更多