• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ODBCテストエラー(pg_hba.conf))

ODBCテストエラー(pg_hba.conf)についての質問

このQ&Aのポイント
  • 質問者は、CentOS 5.6 + PostgreSQL 9という環境でODBC接続のテストを行おうとしましたが、"pg_hba.conf"ファイルが見つからずエラーが表示されています。
  • "pg_hba.conf.sample"ファイルをコピーしてリネームし、"host all all xxx.xxx.xxx.xxx/xxx trust"の記述を追加してもエラーは解決しませんでした。
  • 質問者は、なぜ"pg_hba.conf"ファイルが見つからないのか、リネームしたファイルに正しい記述を追加してもエラーが解決しないのか、このエラーが発生する原因について知りたいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • tomaju
  • ベストアンサー率76% (84/110)
回答No.3

> 3008 ? S 0:00 /opt/PostgreSQL/9.0/bin/postgres -D /opt/PostgreSQL/9.0/data > と表示されますが、このフォルダにはファイルのコピーは出来ません。 > アクセス権が無いようですが、そう言うものなのでしょうか? はい。PostgreSQLのサービス実行やデータベース管理のためのユーザーが 登録されており、そのユーザーだけにアクセス権が与えられているはずです。 ユーザー名は postgres が一般的だと思います。 例えば自分の手元だとこんな感じです。 [root@www ~]# ls -ld /opt/PostgreSQL/9.0/data drwx------ 13 postgres postgres 4096 11月 1 12:55 /opt/PostgreSQL/9.0/data > …インストールはこのユーザーで行ったはずなのですが。 途中 su や sudo コマンドを使って、postgres ユーザーや root の権限で インストールを行っていないですかね。 ひとまず root に su して、/opt/PostgreSQL/9.0/data の下を 調べてみてはどうでしょうか。

prd5678
質問者

お礼

バッチリ解決しました。 仰るとおり、su にして調べたら、pg_hba.conf があり、それを編集したら接続出来るようになりました。 色々と勉強になりました。 ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • tomaju
  • ベストアンサー率76% (84/110)
回答No.2

実は、 /opt/PostgreSQL/9.0 以下にインストールする流儀は、 初めて知ったのですが、PostgreSQLのインストールはどのように 行われたのでしょう。 ひょっとしてEnterpriseDB社提供のバイナリですかね? http://www.enterprisedb.com/products-services-training/pgdownload とすると、/opt/PostgreSQL/9.0/data の中に pg_hba.conf がないでしょうか? また CentOS 上で ps ax | grep postgres を実行すると以下のような行が出てこないでしょうか。 8512 ? S 0:00 /opt/PostgreSQL/9.0/bin/postgres -D /opt/PostgreSQL/9.0/data ここで -D の後がデータベースクラスタの場所を示しており、その中に pg_hba.conf を 置けば参照されると思うのですが。。。

prd5678
質問者

補足

tomaju さん、おせわになります。 >…PostgreSQLのインストールはどのように >行われたのでしょう。 >ひょっとしてEnterpriseDB社提供のバイナリですかね? お恥ずかしい話ですが、社内の人間からの指示・提供で行ったため、提供元がはっきりしません。 (指示した人間も「忘れた」としか…) インストールも、あるWebページのハードコピーを資料に行いました。 >とすると、/opt/PostgreSQL/9.0/data の中に pg_hba.conf がないでしょうか? このフォルダ、エクスプローラ(?)で見ると「空」と表示され、道路標識の「進入禁止」のようなマークも表示されています。 また、 >また CentOS 上で ps ax | grep postgres を実行すると以下のような行が出てこないでしょうか。 >8512 ? S 0:00 /opt/PostgreSQL/9.0/bin/postgres -D /opt/PostgreSQL/9.0/data 実行すると、 3008 ? S 0:00 /opt/PostgreSQL/9.0/bin/postgres -D /opt/PostgreSQL/9.0/data と表示されますが、このフォルダにはファイルのコピーは出来ません。 アクセス権が無いようですが、そう言うものなのでしょうか? …インストールはこのユーザーで行ったはずなのですが。 一見普通に動いているように見えるのですが、やはり、インストール自体がおかしいのでしょうか?

すると、全ての回答が全文表示されます。
  • tomaju
  • ベストアンサー率76% (84/110)
回答No.1

PostgresSQL 9 を CentOS で使ったことは未だないため、 8 や Windows 版の 9 からの類推になってしまうのですが。。。 > 1."pg_hba.conf"が見付らない時点で、何かおかしい(セットアップエラー?)のか? initdb でデータベースクラスタの初期化をしていると思います。 そのデータベースクラスタのディレクトリの中に pg_hba.conf がないでしょうか? 標準パッケージの postgresql-server-8.1.x だと /var/lib/pgsql/data になります。 ソースからコンパイルした場合は /usr/local/pgsql/data かもしれません。 http://d.hatena.ne.jp/bose999/20100922/1285087812 の記事では、 CentOS5.5へPostgreSQL9.0をyumでインストールしています。 データベースクラスタのディレクトリは /var/lib/pgsql/9.0/data で、 /var/lib/pgsql/9.0/data/pg_hba.conf を編集しています。 > 2.同じフォルダにコピーを作成してリネーム、"host all all xxx.xxx.xxx.xxx/xxx trust"の記述追加は正しいのか? opt/postgreSQL/9.0/share/postgresql はサンプルや雛形のファイルを 格納するディレクトリと思われます。 このフォルダにコピーを作成しても、動作に反映されないと考えます。

prd5678
質問者

補足

tomaju さん、回答ありがとうございます。 pg_hda.conf ですが、ファイル検索しても先に書いた"pg_hda.conf.sample"しかヒットしませんでした。 また、ディレクトリ名"pgsql"も存在しません。 (/var/libの下にも/usr/localの下にも…) 他方、"postgresql"(大文字小文字問わず)の名前を持つディレクトリが -------------------------------------------------- /opt /opt/PostgreSQL/9.0/doc /opt/PostgreSQL/9.0/include /opt/PostgreSQL/9.0/lib /opt/PostgreSQL/9.0/share -------------------------------------------------- に存在しています。 >opt/postgreSQL/9.0/share/postgresql はサンプルや雛形のファイルを >格納するディレクトリと思われます。 >このフォルダにコピーを作成しても、動作に反映されないと考えます。 仰るとおり、動作に何も影響を与えていないようです。

すると、全ての回答が全文表示されます。

関連するQ&A