はじめに
日立製のデータベースであるHiRDBに接続するには、pdsqlコマンドというクライアント側のツールを利用するのが最も簡単です。
本記事では、UNIX環境に対してインストールを行い、実際にDBに接続する流れを記載しました。
環境情報
- Amazon Linux 2
- HiRDB/Run Time Version 10
- HiRDB SQL Executer
コマンドの発行準備
体験版または製品版のメディアをサーバ内に配置し、マウント。
# mount -o loop ./XXX.ISO /mnt/media
PPツールでsetupを行い、以下のようにRun TimeとSQL Executerをインストールします。
PP-No. VR Install date PP-NAME 001 P-8362-1BA1 xx xx HiRDB/Run Time Version 10 002 R-F19428-517 xx xx HiRDB SQL Executer
そうすると/opt配下にpdsqlとHiRDBというディレクトリができます。
# ls /opt/ HiRDB pdsql
ちなみにHiRDB配下にpdsqlのjarが入っているので、HiRDB SQL Executerが入手できない場合はJavaプログラムから同ライブラリを利用することでpdsqlコマンドなしに接続することも可能です。
本題ですが、pdsqlコマンドは以下のパスから実行します。私は環境のせいか以下のエラーとなりました。
# /opt/pdsql/pdsql -bash: /opt/pdsql/pdsql: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
これを回避するために追加でライブラリをインストール。
# yum install glibc.i686 Loaded plugins: extras_suggestions, langpacks, priorities, update-motd amzn2-core ... Installed: glibc.i686 0:2.26-64.amzn2.0.5 ... Complete!
次はライブラリのパスが通っていないエラーとなったので
# /opt/pdsql/pdsql /opt/pdsql/pdsql: error while loading shared libraries: libzclt.so: cannot open shared object file: No such file or directory
以下にあるパスを通すために
/opt/HiRDB/client/xds/lib/libzclt.so
環境変数を定義しました。
# export LD_LIBRARY_PATH=/opt/HiRDB/client/lib
これにてコマンドが正常に実行できるようになりました。
# /opt/pdsql/pdsql Password:
接続&SQL発行
HiRDBサーバの接続情報として、ユーザ,サーバ名,ポート番号,文字コードを環境に合わせて以下のように定義。PDHOSTはIPアドレに紐づくホスト名を入れます。
export PDUSER='"admin"/"admin"' export PDHOST=test export PDNAMEPORT=22200 export PDCLTLANG=SJIS export PDLANG=SJIS
注意点として、ユーザ名が小文字であれば上のようにシングルクオーテーションとダブルクオテーションで囲むこと。これをしないと大文字として認識されて以下のようなユーザエラーとなります。
KFPA11561-E Specified authorization identifier ADMIN has no connect privilege
設定がうまくいくと、pssqlコマンドにてインタラクティブに任意のSQLコマンドが打てるようになります。例えば、存在するテーブル名を取得するSQLを押下すると以下のような結果に。SQLの発行ができました。
SELECT TABLE_NAME FROM MASTER.SQL_TABLES; TABLE_NAME ------------------------------ SQL_ACCESS_SECURITY SQL_ALIASES ... KFPX27010-I 133 rows selected
抜ける時は exit で抜けれます。
終わりに
pdsqlコマンドですが、以下のようなファイルタイプのコマンドとなっているため、少し実行時に癖があります。
/opt/pdsql/pdsql: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=xx, not stripped
本記事に記載の流れが、トラブルシューティングの一助になっていれば幸いです。