【问题标题】:How to connect to an alternative local postgresql cluster for the fist time?如何第一次连接到另一个本地 postgresql 集群?
【发布时间】:2017-09-19 13:04:47
【问题描述】:

在 Ubuntu 16.04 中,我创建了第二个 postgres 数据库集群,名为 cmg,本地用户为管理员用户:

pg_create -u "local_username" -g "local_usergroup" -d /path/to/data/dir 9.5  cmg

集群开始于:

pg_ctrlcluster 9.5 cmg start

成功运行(pg_lsclusters 显示两者都在线)

问题是我无法像通常那样使用 psql 连接到集群。

我尝试使用:

psql -h 127.0.0.1 -w -p5433  -U local_username

失败:

psql: fe_sendauth: no password supplied"

有什么方法可以连接到特定的集群吗?

【问题讨论】:

  • 尝试psql -h your_socket_dir -w -p5433 -U postgres 并检查您是否拥有用户local_username。顺便说一句 - 你有没有输入任何密码?..如果它没有问,请尝试添加-W
  • 感谢@Vao-Tsun,您的建议稍作改动即可。最后得到:'psql -h /tmp/ -p 5433 -d potsgres'。当前登录的用户是管理员用户('local_user')。请将其添加为答案。

标签: postgresql


【解决方案1】:

使用psql -h your_socket_dir -p5433 -U postgres 本地连接(默认使用peer auth - 因此无需密码即可登录)

一旦登录 - 设置密码(如果需要创建用户)并使用它远程连接

psql -h 127.0.0.1 -p5433  -U local_username

在你的连接字符串中你有-w,它永远不会要求输入密码https://www.postgresql.org/docs/current/static/app-psql.html,默认情况下它只适用于本地连接

【讨论】:

    【解决方案2】:

    我认为当您启动新集群时默认的pg_hba.conf 期望您使用peer 连接进行身份验证,因此您需要在连接之前将用户更改为本地用户

    [root@server~]# su - local_username
    >> Enter password:
    > password
    [local_username@server~]# psql -h 127.0.0.1 -p 5433
    

    您可以在/path/to/data/dir/pg_hba.conf 中检查您的pg_hba.conf 文件,了解它希望您如何进行身份验证。

    或者,如果您无法以 'local_username' 的身份获得访问权限,那么请按照上述说明 su 到 postgres 用户,它应该可以工作

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 2018-11-04
      • 2022-06-15
      • 1970-01-01
      • 2020-09-01
      相关资源
      最近更新 更多