我创建了一个intranet
数据库,然后退出并离开我的电脑几个小时。现在我回来了,我想为该数据库创建一个用户。我试图登录数据库来创建新用户,但它不允许我进入。
# psql intranet postgres -W
Password for user postgres:
psql: FATAL: Peer authentication failed for user "postgres"
数据库用户“postgres”是否与SSH共享相同的密码?我已经更改了SSH用户密码,但没有更改PostgreSQL。
更新
我已经通过输入我的IDE使用的相同密码验证我正在使用该用户的正确密码。
答案 0 :(得分:0)
您已使用“对等”身份验证设置服务器,这意味着它希望您以“postgres”shell用户身份登录。这意味着您需要这样做:
sudo su - postgres
psql intranet
如果要对“postgres”用户使用密码验证,则应修改pg_hba.conf文件以设置验证。
更多信息:http://www.postgresql.org/docs/current/static/client-authentication.html
答案 1 :(得分:0)
我能够通过重置postgres
用户上的PostgreSQL密码然后使用该用户创建特定于数据库的用户来解决此问题。
# su postgres
postgres@ProdSQL:~/data> psql
psql (9.1.9)
Type "help" for help.
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'ssV!mp8';
ALTER ROLE
postgres=# \q
postgres@ProdSQL:~/data> psql intranet postgres -W
Password for user postgres:
psql (9.1.9)
Type "help" for help.
intranet=# CREATE USER intranet LOGIN PASSWORD '********';
CREATE ROLE
intranet=#