pg_dump与数据库的连接失败

时间:2013-07-06 01:01:32

标签: postgresql

我正在尝试在本地计算机上使用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时,会发生不同的事情。但是,即使重启后,我仍然无法连接到服务器错误消息(如上所述)。

为了解决这个问题,我应该尝试下一步采取哪些措施?

提前谢谢

1 个答案:

答案 0 :(得分:6)

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

你的PATH错了,它从Apple的psql PostgreSQL的内置副本找到了pg_dumppsql等,而不是你安装的那个分开。

尝试使用-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/等。