首页 文章

Postgresql中不存在“角色”

提问于
浏览
3

我正在阅读本教程here . 以下命令以用户身份登录:

# login as user "user"
psql -U user

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

psql: FATAL:  role "user" does not exist

我在网上看到的唯一帮助是here,已经说了以下内容:

致命:角色“myusername”不存在默认情况下,PostgreSQL连接到PostgreSQL用户,其名称与当前的unix用户相同 . 您尚未在数据库中使用该名称创建PostgreSQL用户 . 创建合适的用户,或指定要连接的其他用户名 . 在命令行工具中,-U标志执行此操作 .

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

2 回答

  • 5

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

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

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

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

    createdb your_username -O your_username
    

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

    psql -h localhost -U your_username
    
  • 5

    请检查用户是否存在 .

    \dg
    

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

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

相关问题