【问题标题】:Restore Database from dump.sql从 dump.sql 恢复数据库
【发布时间】:2014-11-12 07:24:13
【问题描述】:

我在从转储文件恢复数据时收到此错误。

nishant@nishant-Lenovo-G50-70:~/Documents$ psql sortation_gor1 < dump.sql
psql: FATAL:  role "nishant" does not exist

我关注了Postgress Ubuntu Documentation 但是当我尝试恢复数据库时,我收到了这个错误。 任何的想法。 ?

【问题讨论】:

    标签: postgresql database-restore


    【解决方案1】:

    PostgreSQL pg_dump 不保存角色。 PostgreSQL 中的角色与数据库集群相关,而不是与单个数据库相关。它使用pg_dumpall 选项-r。您应该使用 SQL 语句 CREATE ROLE name LOGIN 手动创建缺少的角色,或者您必须使用带有 pg_dump -r 的导出角色。

    【讨论】:

    • 但我想,默认情况下,Postgres 可能会将 postgres 作为默认角色。我尝试将它切换到 postgres 用户,但我仍然收到错误:psql: FATAL: password authentication failed for user "postgres".
    • 并且数据库的所有者是postgres。
    • 当我做 postgres=# CREATE ROLE postgres;它显示这个错误:角色“postgres”已经存在。
    • 我打开了 dump.sql 文件,看到了这一行 ALTER TABLE public.auth_group OWNER TO sortation_gor;最后创建了一个新角色 sortation_gor。但我仍然无法恢复我的数据库。
    • 如果我使用 ubuntu postgres 用户执行此操作,则:psql: FATAL: 用户“postgres”的密码验证失败。而使用 nishant 用户 psql: FATAL: 角色“nishant”不存在。我想我需要添加一个ubuntu用户sortation_gor来恢复文件..?
    【解决方案2】:

    我用psql -U postgres -d d1atabase_name -f dump.sql 做到了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-10
      • 2019-02-15
      • 2013-02-24
      • 2018-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多