【问题标题】:How to connect to PostgreSQL through CLI?如何通过 CLI 连接到 PostgreSQL?
【发布时间】:2014-10-17 14:43:14
【问题描述】:

我正在尝试通过命令行访问 postgresql。但是,每当我需要输入密码时,我都会收到以下错误:致命:用户 RMehta 的密码验证失败。我很确定密码验证失败的原因是我的数据库的用户是 postgres,而不是 RMehta。

我找到的唯一解决方案是在命令行中使用 runas,但我不知道如何让 runas 工作。非常感谢您的任何建议。我正在使用 Windows 7 和 postgresql 9.3

【问题讨论】:

  • 你能发布你发出的确切命令以及你得到的精确输出吗?
  • 我尝试了很多东西,但我能想到的最好的方法是 RUNAS /USER:postgres。我尝试的所有操作得到的输出是 RUNAS USAGE: ,然后是一大堆关于 runas 应该如何工作的信息。没有错误信息。我所做的任何事情都不会被视为命令。
  • 显然您要么提供了错误的用户名/密码,要么您的pg_hba.conf 配置不正确:stackoverflow.com/…

标签: postgresql cmd command-line-interface runas


【解决方案1】:

对于 Unix 环境,命令行是

psql -U USERNAME -h localhost dbname

对于 Windows 环境,您可以考虑将“-”替换为“/”

-U 选项可让您选择要连接的用户

-h 选项可以连接 TCPIP 协议,你可能认为它对 Windows 没用

【讨论】:

  • 非常感谢!这真的很有帮助。如果可以的话,我会赞成这个评论。
  • 对于 Windows 中的参数,您可以-(或--)替换为/
【解决方案2】:

首先确保您的用户具有 sudo 访问权限,如果没有,您可以使用以下命令将您的用户添加为 sudo 用户:-

sudo adduser <username> sudo

更改将在用户下次登录时生效。

现在尝试运行这个命令:-

sudo -u postgres psql

如果这给您带来错误,请按照以下步骤操作。

i) 现在转到sudo vim /etc/postgresql/&lt;your_postgres_version&gt;/main/pg_hba.conf 文件并查找以下行:

local   all             postgres                                md5 #peer

并对此发表评论。在该行下方必须有一个注释行:

local   all             postgres                                peer

或者对于旧版本,它将是:-

local   all         postgres                          ident

取消注释该行。

ii) 现在使用以下任何命令重新启动 postgres:-

sudo /etc/init.d/postgresql restart

sudo service postgresql restart

iii) 现在您可以使用以下命令简单地登录 postgres:

sudo -u postgres psql

iv) 进入后,您可以创建任何您想要的操作,在我的情况下,我想创建一个新数据库,您可以使用以下命令执行相同操作:

CREATE DATABASE airflow_replica;

【讨论】:

    【解决方案3】:

    psql -h &lt;hostname&gt; -U &lt;username&gt; -d &lt;dbname&gt;

    如果所有参数都正确,那么它会询问您之前输入的用户名的数据库密码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-22
      • 2018-10-12
      • 2017-10-15
      • 2012-10-25
      • 2021-11-13
      • 2018-07-28
      • 1970-01-01
      相关资源
      最近更新 更多