TOP > バックアップのためのtips > cronのpg_dumpでパスワードエラー
前回PostgreSQLのパスワード設定をして、パスワードを入力しないと
データベースにアクセスできないように設定したんですけど、
その後いたるところで副作用を起こしてしまいました。。
まず、今までnobodyユーザにGRANTしてWEBでデータベース使ってた
んですけど、ノンパス設定だったので拒否られちゃってました。。
これはnobodyユーザにパスワードを設定して対処しましたが、
次に気づいたのは、一日一回やってるpg_dumpがパスワードエラー
を起こしていること。。
でもこれはcronがシェルで実行するので、実行時のパスワード入力
プロンプトに対応できない。。
で、オプションで引数にパスワードを設定する方法とか探してみた
んですけどmanみても載ってないし。。
で、調べたらありました。
http://www.postgresql.jp/document/current/html/libpq-pgpass.html
cronを実行するユーザのホームディレクトリに.pgpassというファイルを
作る、とのこと。
$ vi ~/.pgpass
以下を入力します。
hostname:port:database:username:password
これを自分の環境にあわせて設定すればよいようです。
ちなみにポート番号はデフォルト5432です。
ただ、上に書いたデータベース名、ユーザ名などの条件が
コマンドの引数と一致しない場合はパスワードを求められます。
あと、これだけではエラーになって実行できません。
権限設定を行う必要があります。
$ chmod 600 .pgpass
groupとother権限をなくさないとだめでした。
データベースにアクセスできないように設定したんですけど、
その後いたるところで副作用を起こしてしまいました。。
まず、今までnobodyユーザにGRANTしてWEBでデータベース使ってた
んですけど、ノンパス設定だったので拒否られちゃってました。。
これはnobodyユーザにパスワードを設定して対処しましたが、
次に気づいたのは、一日一回やってるpg_dumpがパスワードエラー
を起こしていること。。
でもこれはcronがシェルで実行するので、実行時のパスワード入力
プロンプトに対応できない。。
で、オプションで引数にパスワードを設定する方法とか探してみた
んですけどmanみても載ってないし。。
で、調べたらありました。
http://www.postgresql.jp/document/current/html/libpq-pgpass.html
cronを実行するユーザのホームディレクトリに.pgpassというファイルを
作る、とのこと。
$ vi ~/.pgpass
以下を入力します。
hostname:port:database:username:password
これを自分の環境にあわせて設定すればよいようです。
ちなみにポート番号はデフォルト5432です。
ただ、上に書いたデータベース名、ユーザ名などの条件が
コマンドの引数と一致しない場合はパスワードを求められます。
あと、これだけではエラーになって実行できません。
権限設定を行う必要があります。
$ chmod 600 .pgpass
groupとother権限をなくさないとだめでした。
2006,03,03 Fri 00:28
コメント
コメントする
この記事のトラックバックURL
http://www.isokiti.tv/~isobetti/sabakan/tb.php/127
トラックバック




