我正在设置PostgreSQL 9.1。我不能用PostgreSQL做任何事情:不能createdb,不能createuser;所有操作都返回错误消息
致命:角色h9uest不存在
h9uest是我的帐户名,我sudo apt get installPostgreSQL 9.1在此帐户下。
root帐户也存在类似错误
使用操作系统用户postgres创建您的数据库-只要您没有设置一个数据库角色,该角色具有与同名操作系统用户对应的必要权限(h9uest):
sudo-u postgres-i
按照这里或这里的建议
然后再试一次。当以系统用户身份操作时,键入exit
或使用sudo执行单个命令createuser作为postgres,就像drees在另一个答案中演示的那样
关键是使用与同名数据库角色匹配的操作系统用户,通过ident身份验证授予访问权限postgres是初始化数据库集群的默认操作系统用户。手册:
为了引导数据库系统,一个新初始化的
系统始终包含一个预定义角色。这个角色始终是一个重要的角色
“超级用户”,默认情况下(除非在运行initdb时进行了更改)
将具有与初始化的操作系统用户相同的名称
数据库集群。通常,此角色将命名为postgres。
为了创建更多的角色,您首先必须像这样连接
最初的角色
我听说过使用非标准用户名或操作系统用户不存在的奇怪设置。你需要在那里调整你的策略
阅读手册中有关数据库角色和客户端身份验证的内容