phppgadminのdumpが動かないとき ITかあさん

ITかあさん

phppgadminのdumpが動かないとき

PostgresqlのPHPベースのGUI管理ツール phppgadminですが、バックアップを実行しても空のファイルが生成されたりと、どう~してもDBのバックアップを取ることが出来ませんでした。

結論:pg_dumpの場所を確認する

この手のエラーはpg_dumpのパスがphppgadminに記載されているものとで相違があるから発生するケースがほとんどなのだそうです。

参考

phpPgAdminでエクスポートをする方法 WEBサイト+phpリファレンスより

デフォルトでは
正しくエクスポート出来ない場合、
conf/config.inc.php のpg_dumpのパス設定を直すとエクスポートできます。
デフォルトでは
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/bin/pg_dumpall’;
となっているので
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/local/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/local/bin/pg_dumpall’;
とか
$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/local/pgsql/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’]= ‘/usr/local/pgsql/bin/pg_dumpall’;
とかに変更するとエクスポートできるようになります。
ちなみに私は後者の設定でエクスポートできるようになりました。

・・・それでも出来ません。

冷静にpg_dumpの場所を確認

すると、私の環境では以下のディレクトリの中にありました。

/usr/local/postgresql/bin

と、いうわけで、以下のように変更して、無事dumpの実行ができましたとさっ!
pgadminのcomf/config.inc.phpの35行目あたり

$conf[‘servers’][0][‘pg_dump_path’] = ‘/usr/local/postgresql/bin/pg_dump’;
$conf[‘servers’][0][‘pg_dumpall_path’] = ‘/usr/local/postgresql/bin/pg_dumpall’;

まとめ:phppgadminのdumpが動かないとき

多くの先人が語るとおり、phppgadminでdumpが動かない場合ほとんどがpg_dumpの場所が間違っているケース。それぞれ環境によって場所が違うようですから、どうしてもdumpがうまくいかないときは/usr/local下のpostgresqlまたはpgsqlなどからpg_dumpの場所を確認してみてください。

初夏のJavaScript祭 in サーキュレーションビル ForPro