175

pg_dumpツールを使用して Postgresql データベースをダンプしようとしています。

$ pg_dump books > books.out

どのようにこのエラーが発生していますか。

pg_dump: server version: 9.2.1; pg_dump version: 9.1.6
pg_dump: aborting because of server version mismatch

この--ignore-versionオプションは現在廃止されており、たとえ機能していたとしても、実際には私の問題の解決策にはなりません。

この問題を解決するにはどうすればpg_dumpをアップグレードできますか?

4

31 に答える 31

43

Mac には、/usr/bin/pg_dumpデフォルトで使用される組み込みコマンドがあります。

postgresql をインストールすると、次の場所に別のバイナリが取得されます。/Library/PostgreSQL/<version>/bin/pg_dump

于 2013-03-08T12:48:19.517 に答える
30

PostgreSQL 9.2.1 をクライアント マシンにインストールするか、PostgreSQL サーバー マシンからクライアント マシンにpg_dump単にコピーすることができます。クライアント マシンに新しいクラスタを作成する$PGHOME必要はないことに注意してください。initdb

9.2.1 ソフトウェアのインストールが完了したら、.bash_profileファイル内のいくつかの環境変数を忘れずに編集してください。

于 2012-10-11T09:26:47.427 に答える
19

Ubuntu を使用している場合は、古いバージョンの がpostgresql-clientインストールされている可能性があります。エラー メッセージのバージョンに基づくと、解決策は次のようになります。

sudo apt-get remove postgresql-client-9.1
sudo apt-get install postgresql-client-9.2
于 2014-03-08T21:39:47.120 に答える
12

新しいバージョンの PostgreSQL をアップグレードまたは再インストールするたびに、最新バージョンの pg_dump がインストールされます。

PostgreSQL/bin システムのどこかに、インストールした PostgreSQL の最新バージョン (9.2.1 が最新) の下にディレクトリ が必要であり pg_dump 、そこから を実行してみてください。

于 2012-10-11T09:45:09.830 に答える
11

Postgres.app を実行している場合:

  1. 次のコードを に追加します.bash_profile

    export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH
    
  2. ターミナルを再起動します。

于 2017-10-07T01:16:04.470 に答える
10

Homebrew を搭載した Mac 用。Heroku からデータベースをフェッチするときに、この問題が発生しました。実行するだけで修正しました:

brew upgrade postgresql
于 2016-09-12T07:44:35.123 に答える
9

docker がインストールされている場合は、次のようなことができます。

$ docker run postgres:9.2 pg_dump books > books.out

これにより、Postgres 9.2 を含む Docker コンテナーがダウンロードされ、pg_dumpコンテナー内で実行され、出力が書き込まれます。

于 2016-10-07T21:57:25.950 に答える
7

Mac ユーザーの場合は、.profile ファイルの先頭に置きます。

export PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

次に実行します

. ~/.profile
于 2013-10-13T14:17:04.070 に答える
4

説明したように、これはpostgresqlが古いバージョンであるためです->自作経由でMac用に更新します:

brew tap petere/postgresql

brew install <formula>(例: brew install petere/postgresql/postgresql-9.6)

古い postgre を削除します。

brew unlink postgresql

brew link -f postgresql-9.6

エラーが発生した場合は、各ステップで醸造の指示を読み、それに従うことを忘れないでください。

詳細については、こちらをご覧ください: https://github.com/petere/homebrew-postgresql

于 2016-11-09T04:39:37.543 に答える
2

2 つの postgress バージョンがインストールされているため、同じ問題が発生しました。

適切な pg_dump を使用するだけで、何も変更する必要はありません。

 $> /usr/lib/postgresql/9.2/bin/pg_dump books > books.out
于 2016-11-15T08:28:09.403 に答える
2

Heroku の Postgres.app を使用している場合、pg_dump (他のすべてのバイナリと共に) は/Applications/Postgres.app/Contents/MacOS/bin/

だからその場合は

ln -s /Applications/Postgres.app/Contents/MacOS/bin/pg_dump /usr/local/bin/pg_dump

また

ln -s /Applications/Postgres.app/Contents/MacOS/bin/* /usr/local/bin/.

それらすべてをつかむために

于 2013-10-01T15:53:27.187 に答える
2

** インストール後、Postgres のバージョンが一致します(9.2) シンボリック リンクまたは新しいショートカットを作成します

**-「/usr/bin」上

syntag is = sudo ln -s [path for use] [new shortcut name]

sudo ln -s /usr/lib/postgresql/9.2/bin/pg_dump new_pg_dump

-- 呼び出し方法 : new_pg_dump -h 192.168.9.88 -U postgres データベース

于 2013-12-04T03:51:32.010 に答える
2

それを試してください:

export PATH=/usr/local/bin:$PATH
于 2014-10-17T15:26:50.753 に答える
1

Mac の場合find / -name pg_dump -type f 2>/dev/null、pg_dump の場所を検索します。

私にとっては、次の結果があります。

Applications/Postgres.app/Contents/Versions/9.5/bin/pg_dump
/usr/local/Cellar/postgresql/9.4.5_2/bin/pg_dump

を使用したくない場合は、次をsudo ln -s new_pg_dump old_pg_dump --force使用してください。

Applications/Postgres.app/Contents/Versions/9.5/bin/pg_dumpあなたpg_dumpの端末で

例えば:

Applications/Postgres.app/Contents/Versions/9.5/bin/pg_dump books > books.out

わたしにはできる!

于 2016-10-27T06:21:08.780 に答える