1

ローカル マシンで 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次に、コンソールに入力したときに何か違うことが起こることを期待して、マシンを再起動しました。ただし、再起動した後でも、サーバーに接続できませんというエラー メッセージが引き続き表示されます (上記で説明したように)。

この問題を解決するには、次にどのような手順を試す必要がありますか?

前もって感謝します

4

1 に答える 1

6

あなたは Mac OS X を使っていますよね?

PATH が間違っています。個別にインストールしたものではなく、 Apple の組み込みのPostgreSQLコピーからpsql、などを見つけています。pg_dumppsql

-h /tmpまたはを使用してみてください-h localhost。それが機能する場合、これが問題であることを確認します。PATH適切に修正するには、正しい PostgreSQL バイナリが最初に存在するように を調整する必要があります。

(OS X の PostgreSQL にデフォルトのシステム PATH 上のツールをバンドルし、ユーザーがインストールしたツールと衝突することに対して、Apple にかなり腹を立てています)。

あなたのフォローアップコメントは、これが問題であることを確認しています. pg_dumpインストールした PostgreSQL のバージョンからを実行する必要があります。PostgreSQL やオペレーティング システムなどをどのようにインストールしたかについて言及していないので、この問題に関する既存の言及を検索することをお勧めします。次のようなものを検索します。

「OS X」postgresql パス

参考になります。このスタック オーバーフローの検索も同様です。

または、明示的に へのパスを指定することもできますpg_dump。どこにあるかは、言及していないPostgreSQLのインストール方法によって異なります。/usr/local/bin/pg_dump、、/opt/などの可能性があります。

于 2013-07-06T01:04:19.807 に答える