Postgresql中不存在“角色”

“Role” does not exists in Postgresql

我在这里阅读本教程。 以下命令以用户身份登录:

1
2
# login AS USER"user"
psql -U USER

当我执行上面的命令时,我得到一个错误说明如下:

1
psql: FATAL:  ROLE"user" does NOT exist

我在网上看到的唯一帮助是在这里,已经说了以下几点:

FATAL: role"myusername" does not exist

By default PostgreSQL connects to the PostgreSQL user with the same
name as the current unix user. You have not created a PostgreSQL user
by that name in your database.

Create a suitable user, or specify a different username to connect
with. In the command line tools the -U flag does this.

但我仍然不太明白为什么我会收到这个错误。


您首先以用户postgres的身份登录Linux shell,然后使用命令createuser创建新的postgres用户。 系统用户postgres由Postgres安装程序自动创建。

在控制台中执行此代码(使用您选择的用户名更改your_username):

1
2
sudo -u postgres -i
createuser -l -d -P your_username

更好的是你创建一个具有相同名称的数据库(这使得登录更容易):

1
createdb your_username -O your_username

然后你应该能够在psql中连接

1
psql -h localhost -U your_username

请检查用户是否存在。

1
\dg

如果没有,您需要教程中缺少的内容,并在必要时进行编辑。

1
CREATE USER USER WITH PASSWORD '<here you password>';