【问题标题】:pg_restore connection to database failed error while restoring backup还原备份时,pg_restore 连接到数据库失败错误
【发布时间】:2021-06-04 20:06:43
【问题描述】:

我有一个tar 格式的备份文件,获取此备份没有问题。但是,当尝试使用以下脚本恢复此备份时,我遇到 "pg_restore: error: connection to database "db-dev" failed: FATAL: password authentication failed for user "db-dev-user"" em> 输入密码后出错。

pg_restore -v -h 127.0.0.1 -p 5432 -d db-dev -U db-dev-user < C:\dB\db-dev.tar

我正在尝试将此备份还原到 Docker 容器,在该容器中我可以轻松地创建一个具有相同名称 (db-dev) 的空数据库。我也在使用 Windows 10。那么,我该如何解决这个问题?请问这个问题和Docker有关吗?

【问题讨论】:

  • 不,这是 PostgreSQL 的问题。查看 PostgreSQL 日志以确保它确实是密码错误。然后使用正确的密码。
  • 是的,但错误消息有时可能是通用的。第一步,我想确定是否存在密码问题。出于这个原因,您能回答以下问题吗? >>>
  • 我应该使用我恢复数据库的服务器中的一个用户吗?还是用户或备份数据库?
  • pg_restore 命令中,我使用db-dev-user,即备份数据库的用户。但是,它应该是恢复备份的服务器的用户吗?
  • 啊,我明白了。是的,您必须使用pg_restore-U 选项从目标数据库中指定一个用户,并且您需要输入该用户的密码。

标签: postgresql docker postgresql-9.5 pg-dump pg-restore


【解决方案1】:

-U选项必须指定目标数据库中的现有用户,调用pg_restore时必须指定用户密码。

使用具有创建转储对象所需权限的用户,并确保目标的pg_hba.conf 允许用户从您的客户端计算机访问数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 2021-12-15
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多