我正在设置 PostgreSQL 9.1。我不能用 PostgreSQL 做任何事:不能createdb
, can't createuser
;所有操作都会返回错误信息
Fatal: role h9uest does not exist
h9uest
是我的帐户名,我sudo apt-get install
此帐户下的 PostgreSQL 9.1。
类似的错误仍然存在root
帐户。
Use the 操作系统用户 postgres
创建您的数据库 - 只要您还没有设置database具有与您的同名操作系统用户相对应的必要权限的角色(h9uest
在你的情况下):
sudo -u postgres -i
按照推荐here https://serverfault.com/q/359856/98376 or here https://serverfault.com/q/601140/98376.
然后再试一次。类型exit
以系统用户身份完成操作后postgres
.
Or执行单个命令createuser
as postgres
with sudo
, like 证明由
dsrees https://stackoverflow.com/a/18708583/939860在另一个答案中。
要点是使用与同名数据库角色匹配的操作系统用户来授予访问权限ident验证 https://www.postgresql.org/docs/current/client-authentication.html. postgres
是初始化数据库集群的默认操作系统用户。手册: https://www.postgresql.org/docs/current/database-roles.html
为了引导数据库系统,需要一个新初始化的
系统总是包含一个预定义的角色。这个角色永远是
“超级用户”,默认情况下(除非运行时更改initdb
) 它
将与初始化的操作系统用户具有相同的名称
数据库集群。通常,该角色将被命名为postgres
。
为了创建更多角色,您首先必须像这样连接
初始角色。
我听说过使用非标准用户名或操作系统用户不存在的奇怪设置。你需要在那里调整你的策略。
阅读数据库角色 https://www.postgresql.org/docs/current/user-manag.html and 客户端认证 https://www.postgresql.org/docs/current/client-authentication.html在手册中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)