【问题标题】:pg_dump connection to database failedpg_dump 连接到数据库失败
【发布时间】:2013-07-04 03:06:47
【问题描述】:

我正在尝试在本地机器上使用 pg_dump 工具。但是,当我在终端窗口中键入 pg_dump database_name 时,我会收到以下消息:

pg_dump: [archiver (db)] connection to database "demo" failed: 
could not connect to server: No such file or directory

收到此错误消息后,我进入我的 postgressql.conf 文件(postgres 的配置文件)并将listen_addresses 设置为*。我的连接字符串如下所示:

  - Connection Settings -

 #listen_addresses = '*'        # what IP address(es) to listen on;
                # comma-separated list of addresses;
                # defaults to 'localhost'; use '*' for all
                # (change requires restart)
#port = 5432                # (change requires restart)
max_connections = 20            # (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation
                # (change requires restart)
#bonjour = off              # advertise server via Bonjour
                # (change requires restart)
#bonjour_name = ''          # defaults to the computer name
                # (change requires restart)

然后我重新启动了我的机器,希望当我在控制台中输入pg_dump 时,会发生一些不同的事情。但是,即使在重新启动后,我仍然会收到无法连接到服务器的错误消息(如上所述)。

接下来我应该尝试哪些步骤来解决此问题?

提前谢谢你

【问题讨论】:

  • 我错了两件事,一是我没有安装pg_dump,二是数据库被关闭了!

标签: postgresql


【解决方案1】:

您使用的是 Mac OS X,对吧?

您的 PATH 错误,它是从 Apple 的 psql PostgreSQL 的内置副本中找到 psqlpg_dump 等,而不是您单独安装的那个。

尝试使用-h /tmp-h localhost。如果可行,则证实这是问题所在。要正确修复它,您需要调整 PATH 以便首先出现正确的 PostgreSQL 二进制文件。

(我很生气 Apple 将 OS X 中的 PostgreSQL 与默认系统 PATH 上的工具捆绑在一起,并与任何用户安装的工具发生冲突)。

您的后续评论证实这是问题所在。您需要从您安装的 PostgreSQL 版本运行 pg_dump。由于您没有说明如何安装 PostgreSQL、操作系统或其他任何东西,我建议您通过搜索有关此问题的现有提及来做到这一点。搜索类似:

“OS X”postgresql 路径

将提供丰富的信息。 this Stack Overflow search也是如此。

或者,您可以明确给出pg_dump 的路径。它在哪里取决于你如何安装 PostgreSQL,你没有提到。可能是/usr/local/bin/pg_dump/opt/ 等。

【讨论】:

  • 克雷格!太棒了。谢谢
  • -h localhost 在 linux (ubuntu 16) 上的 pg_dump 中为我工作