ma-100140 @ ウィキ CentOS release 4.8 (Final)

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

インストール手順

  • XWindows環境を準備します。インストール自体はコマンドラインでできそうですが、構成情報をGUIで設定した方が楽そう。
  • FP18_MI00291_ADCL.tarの入手
  • FP18_MI00291_ADCL.tarの解凍
  • adcl/db2setup を起動(これでDB2がインストールされます。db2inst1というユーザーが作られます)
  • db2inst1 ユーザでログインし直す(このユーザーで作業を進めます)
  • db2構成アシスタントを起動し、リモート(AIX)のDB2へつなぐための設定をします。
  • コントロールセンターを起動してちゃんと接続できるか確認します。ここまででDB2の設定が終了。
  • unixODBCのインストール unixODBC-2.3.0.tar.gzを入手
    % tar zxvf unixODBC-2.3.0.tar.gz
    % cd unixODBC-2.3.0
    % ./configure
    % make
    % make install
    
  • unixODBCの設定
    • /usr/local/etc/odbcinst.ini
      [DB2]
      Description     = DB2 Driver
      Driver         = /home/db2inst1/sqllib/lib32/libdb2.so
      FileUsage       = 1
      DontDLClose     = 1
      Debug           = 1
      UsageCount      = 2
      
      [ODBC]
      Trace           = Yes
      Tracefile       = /var/log/odbc_trc.log
      UsageCount      = 2
      
    • /usr/local/etc/odbc.ini
      [MyDB]
      ;MyDBは接続したいAIX上のDB
      Description     = MyDB to DB2
      Driver          = DB2
      Protocol=TCPIP
      Server = xxx.xxx.xxx.xxx
      Port = 50000
      Security=0
      
  • db2inst1ユーザのカレントディレクトリーにodbc.iniを.odbc.iniとして登録します。
  • 接続できるかの確認
    % /usr/local/bin/isql -v MyDB uid password
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>
    

他のユーザーからも使えるか?

PHPで使いたいため最終的にはnobodyユーザーでも使用できるかを確認

  • 1回目:見事に失敗
    % /usr/local/bin/isql -v MyDB uid password
    [IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
    

db2inst1と同じグループに入れることで参照権限を与えて見る

% /usr/sbin/usermod -G db2grp1 admin
  • 2回目:やはり失敗
    % /usr/local/bin/isql -v MyDB uid password
    [IM004][unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed
    

db2inst1の.bashrcを眺めると、なにやらプロファイルを読み込んでいる。

# The following three lines have been added by UDB DB2.
if [ -f /home/db2inst1/sqllib/db2profile ]; then
    . /home/db2inst1/sqllib/db2profile
fi
  • 3回目:.bashrcを修正して再チャレンジ。うまくいきました。
    % /usr/local/bin/isql -v MyDB uid password
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>
    

PHPのコンパイル