質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

DB2

DB2(IBM Database2)は、IBMのリレーショナルデータベース管理システム製品です。 UNIXとWindows、IBM社のメインフレームOS用が用意されており、 幅広いプラットフォームに対応しています。

Q&A

解決済

1回答

710閲覧

ブラウザ上でPerlからDB2へ接続できない

ShieNishikawa

総合スコア15

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

DB2

DB2(IBM Database2)は、IBMのリレーショナルデータベース管理システム製品です。 UNIXとWindows、IBM社のメインフレームOS用が用意されており、 幅広いプラットフォームに対応しています。

0グッド

0クリップ

投稿2019/04/04 06:34

編集2019/04/04 09:31

PerlからDB2へ接続するクライアント環境を構築したい

CentOS7にDB2 V11.1をインストールしました。connect_db2.plというスクリプトを作成し、コマンドラインでは接続できてSQL文を実行できています。しかし、ブラウザからhttp://localhost/cgi-bin/connect_db2.plとしてアクセスすると接続できません。一体、どの環境変数を設定すればよいのでしょうか。

発生している問題・エラーメッセージ

/var/log/httpd/error_log の中身
connect_db2.pl: DBI connect('SAMPLE','db2inst1',...) failed: Total
Environment allocation failure! Did you set up your DB2 client
environment? at /var/www/cgi-bin/connect_db2.pl line 13.

該当のソースコード

lang

1#!/usr/bin/perl 2use warnings; 3use strict; 4use DBI; 5use DBD::DB2::Constants; 6use DBD::DB2; 7 8my $dbh = DBI->connect("dbi:DB2:SAMPLE", "db2inst1", "password") 9or die "SAMPLE DBに接続できません: " . DBI->errstr; 10 11my $sth = $dbh->prepare 12 ("SELECT DEPTNAME,COUNT(*) FROM EMPLOYEE E,DEPT D" 13 . " WHERE E.WORKDEPT=D.DEPTNO GROUP BY DEPTNAME"); 14$sth->execute(); 15 16my ($deptname,$count); 17 18while (($deptname,$count) = $sth->fetchrow()) 19{ 20 printf "%30s | %4d\n",$deptname,$count; 21} 22 23$sth->finish(); 24$dbh->disconnect; 25exit;

試したこと

. ~db2inst1/sqllib/db2profile
をroot権限で行いました。

補足情報(FW/ツールのバージョンなど)

CentOS7.6
DB2 V11.1.4.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ググるとこんな情報が出てきましたが、試してみましたか?
https://www.perlmonks.org/?node_id=682626

投稿2019/04/04 07:08

編集2019/04/04 07:11
ssasaki

総合スコア1167

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssasaki

2019/04/04 09:47 編集

その情報で接続できているのですよね? それを CGI 実行時の環境も同様に設定しないといけないという話では?
ShieNishikawa

2019/04/05 01:54

httpd.confに SetEnv CUR_INSTHOME /home/db2inst1/sqllib SetEnv DB2DIR /opt/ibm/db2/V11.1 SetEnv DB2INSTANCE db2inst1 SetEnv DB2LIB /home/db2inst1/sqllib/lib SetEnv DB2_HOME /home/db2inst1/sqllib SetEnv DB2_PATH /opt/ibm/db2/V11.1 SetEnv INSTHOME /home/db2inst1 を追加したら接続できました。どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問