【问题标题】:psql: FATAL: role "test" does not existpsql:致命:角色“测试”不存在
【发布时间】:2017-03-08 14:15:08
【问题描述】:

我是 postgres 新手,在服务器重启后连接数据库时遇到困难。我在操作系统用户测试下创建了一个数据库 pgdb。 服务器重新启动后,我通过发出重新启动 pgsql 命令

service postgresql-9.6 start

启动 postgresql-9.6 服务:[OK]

如果我只是发出 psql,我会被带到 psql 提示符,但这里的数据路径与我之前设置的不同。当我尝试以 postgres 用户身份连接到 pgdb 时,出现错误:

psql: FATAL: 数据库“pgdb”不存在

当我尝试以测试用户身份连接时:

psql -d pgdb

psql: FATAL: 角色“test”不存在

请推荐

【问题讨论】:

  • 你为什么使用很少的版本标签?您的问题是如何仅针对特定版本的?
  • 错误信息似乎很清楚。没有名为test的数据库用户。

标签: postgresql postgresql-9.4 postgresql-9.6


【解决方案1】:

听起来您在 OS 用户测试下创建的数据库与 service postgresql-9.6 start 实例化的实例相比,在 Postgres 的不同实例下。这两个实例可能(或可能在服务器重新启动之前)在不同的端口(例如,5432 和 5433)下运行。

或者,由于您已将其标记为 postgres-9.4 和 postgres-9.6,因此您需要注意它们彼此不同。 您在 Postgres 9.4 下创建的任何数据库都不应存在于 Postgres 9.6 下。如果您在 9.4 下创建了 pgdb 数据库,但在重新启动后开始运行 9.6,您通常需要迁移数据库(其过程超出了本问题的范围)。同样,在 9.4 下创建的用户在 9.6 下也不会自动存在。

【讨论】:

    猜你喜欢
    • 2015-03-28
    • 2013-02-24
    • 2018-02-18
    • 1970-01-01
    • 2014-03-15
    • 2013-05-21
    • 1970-01-01
    相关资源
    最近更新 更多