C:\Users\Thomas>psql -U Thomas -h localhost
Password for user Thomas:
psql: FATAL: password authentication failed for user "Thomas"
我可以使用posgres角色登录。已将密码重新分配给用户托马斯五次......它只是没有坐下。这里可能出现什么问题?
编辑: 如果我尝试以“托马斯”的身份登录错误变成:
C:\Users\Thomas>psql -U thomas -h localhost
Password for user thomas:
psql: FATAL: database "thomas" does not exist
\ du列出如下:
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication | {}
thomas | Create role, Create DB | {}
编辑2: 如果我在数据库上连接thomastest to thomas 然后可以登录,但在命令行中需要额外的信息:
C:\Users\Thomas>psql -d thomastest -U thomas -h localhost
是否可以将此设置为此用户的默认登录名?
答案 0 :(得分:1)
您需要查看pg_hba.conf文件。 psql使用域套接字连接到您的数据库,这与程序从外部进行时的操作不同。在安全声明的最顶层,您可能有类似的内容:
local all all ident
将其更改为:
local all all md5
或者,如果您认为这不是安全问题:
local all all trust
md5
会提示输入密码。 trust
只会让你进入。
哦,添加-h
kinda 的原因是因为使用-h
,它使用pg_hba.conf中的host
条目(而不是本地套接字) ),可能设置为md5
。
修改pg_hba时,您需要退回postgres或运行pg_ctl -D (whatever) reload
答案 1 :(得分:1)