perlからDBIを使用して、データベースにアクセスしたいと思っていますが、connectで下記のようなエラーが出力され接続できません。
↓↓↓↓↓↓apacheのエラーログ↓↓↓↓↓↓↓
DBI connect('dbname=[mscdb]','[postgres]',...) failed: FATAL: database "[mscdb]" does not exist
at /web/member/cgi-bin/dbitest.pl line 8
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
mscdbがないとエラーが出力されているように思いますが、mscdbは存在します。どういった原因が考えられるでしょうか?
プログラムには以下のように記述しています。
#!/usr/bin/perl
use DBI;
use constant DBNAME => 'DBI:Pg:dbname=[mscdb]';
use constant DBUSER => '[postgres]';
use constant DBPASS => '[××××]';
DBI->connect( DBNAME, DBUSER, DBPASS, { AutoCommit => 0 });
print "Content-Type: text/plain\n\n";
print $DBI::errstr? $_: 'Done';
環境は以下の通りです。
perl v5.8.2
postgres v8.1.2
vine linux
dbd v1.49
No.1ベストアンサー
- 回答日時:
postgresqlのpg_hba.confにてどのような接続形態を許可していますか。
また、postmasterの起動オプションはどうなっているでしょうか。
この回答への補足
(1)pg_hba.confは、以下のようにしています。
Webサーバと、DBサーバは同一のマシンに格納していますので、localhostからの接続は、許可しました。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
#host all all 127.0.0.1/32 trust
# IPv6 local connections:
#host all all ::1/128 trust
host all all 192.168.1.0/24 trust
host all all 192.168.3.0/24 trust
host all all 192.168.4.0/24 trust
host all all 127.0.0.1 255.255.255.255 trust
(2)postgresは、マシン起動時にあがるようにinit.dに以下のようなファイルを置き起動しています。
#!/bin/sh
#
# PostgreSQL start and shutdown script
#
# chkconfig: 345 90 11
# description: PostgreSQL start and shutdown script
. /etc/init.d/functions
case "$1" in
start)
su - postgres -c "pg_ctl -l /usr/local/pgsql/log/log${$}.txt -D /usr/local/pg
sql/data/ -o \"-S -i\" start"
touch /var/lock/subsys/postgres
;;
stop)
su - postgres -c "pg_ctl stop -D /usr/local/pgsql/data/ -m fast"
rm -f /var/lock/subsys/postgres
;;
*)
echo "Usage: /etc/rc.d/init.d/postgres {start|stop}"
esac
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LCD ディスプレイを Raspberry ...
-
例外処理のフローチャートの記...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBAでリンク切れをチェッ...
-
VBAで別モジュールへの変数の受...
-
VBAでoutlook365が起動しません。
-
モジュールとクラスの違いって...
-
モジュールとサブルーチン
-
VBでグローバル変数を宣言するには
-
ユーザー定義関数に#NAME?が返...
-
AIX6でファイルのタイムスタン...
-
VBSがコンパイルエラーになりま...
-
教えて下さい。
-
Form間の値の渡し方
-
GOSUB命令とは
-
エクセルVBAでシートモジュール...
-
グラフのX,Y座標を取得したい
-
関数の引数にクラスを使いたい
-
Excel VBAで、ユーザーフォー...
-
ベースモジュールって?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LCD ディスプレイを Raspberry ...
-
laravel 本番環境でメールが送...
-
:shared って何
-
DBIが入っているはずですが、、、
-
MySQLとの接続でfetchrow_array...
-
警告を消したい
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
VBSがコンパイルエラーになりま...
-
Excel VBAで、ユーザーフォーム...
-
「デバイスは PRN を初期化でき...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
-
VBAで別モジュールへの変数の受...
-
モジュールの最大数はいくつな...
-
VBでグローバル変数を宣言するには
-
グラフのX,Y座標を取得したい
-
VBA This Workbookモジュール...
-
モジュールとクラスの違いって...
おすすめ情報