在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,并且它应该起作用