如何在拳头时间连接到替代的本地PostgreSQL群集



在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 -p5433 -U postgres在本地连接(默认使用Peer Auth-因此,高chahce登录密码)

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

psql -h 127.0.0.1 -p5433  -U local_username

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

我认为启动新群集时默认的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'获得访问权限,则可以在上面的说明中向postgres用户进行su,并且它应该起作用

最新更新