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