You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL复制远程数据库到另一服务器遇不存在报错如何解决

PostgreSQL pg_dump 报错数据库不存在的解决方案

首先明确你收到的报错:

pg_dump: error: connection to database [DB] failed: FATAL: database [DB] does not exist

该报错的本质是你当前pg_dump命令连接的PostgreSQL实例下,不存在你指定的数据库,和pg_hba.conf配置无关(pg_hba.conf管控的是连接权限,异常报错通常为身份校验失败、无访问权限类提示),你之前修改该配置属于排查方向错误。


排查与解决步骤

1. 确认你要导出的数据库真实存在

登录到你要导出的源数据库实例,执行以下命令列出所有数据库,确认目标库名拼写、大小写完全匹配:

psql -U postgres -h [源数据库所在服务器的IP/域名] -l

注意两个常见误区:

  • 第一条命令pg_dump -U postgres -d [DB] -f [DB].sql没有加-h参数,默认连接的是你本地mac上运行的PostgreSQL实例,不是远程源服务器的实例,本地没有对应库就会直接报错
  • PostgreSQL的数据库名区分大小写,如果你建库时用了大写字母,执行命令时需要给库名加双引号包裹,比如-d "UserDB"

2. 编写正确的导出命令

从远程源服务器导出数据库到本地的标准命令格式如下,按需替换参数即可:

pg_dump -U [源数据库用户名] -h [源服务器IP/域名] -p [源PostgreSQL端口,默认5432] -d [源数据库名] -f [导出文件保存路径].sql

执行后输入源数据库对应用户的密码即可完成导出。

3. 跨服务器直接迁移(可选,无需生成本地文件)

如果要直接把源库数据同步到目标远程服务器,不用存本地SQL文件,可以用管道命令一步完成:

pg_dump -U [源端用户名] -h [源端主机地址] -d [源端数据库名] | psql -U [目标端用户名] -h [目标端主机地址] -d [目标端数据库名]

注意需要提前在目标端创建好同名空数据库,否则导入步骤会报错。


内容的提问来源于stack exchange,提问作者Ewax_Du

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 11:06:03