使用的系統(tǒng)是RHEL5.3,數(shù)據(jù)庫(kù)版本是IDS V11.50UC6(已選安裝CSDK V3.5)
新建一用戶dbuser用于測(cè)試ODBC,使用的shell是bash
1.配置dbuser用戶環(huán)境包含以下內(nèi)容
INFORMIXDIR
PATH --PATH中應(yīng)包含${INFORMIXDIR}/bin
INFORMIXSQLHOSTS --(可選,不配置使用默認(rèn)的${INFORMIXDIR}/etc/sqlhosts)
示例:
INFORMIXDIR=/opt/informix
PATH=$PATH:${INFORMIXDIR}/bin
INFORMIXSQLHOSTS=${INFORMIXDIR}/etc/sqlhosts
export INFORMIXDIR PATH INFORMIXSQLHOSTS
2.配置odbcinst.ini文件
拷貝${INFORMIXDIR}/etc/odbcinst.ini到dbuser用戶目錄下
修改odbcinst.ini文件中的Driver、Setup,將相應(yīng)的目錄改成${INFORMIXDIR}具體所有的目錄即可
Driver=/opt/informix/lib/cli/iclit09b.so
Setup=/opt/informix/lib/cli/iclit09b.so
3.配置odbc.ini文件
拷貝${INFOMRIXDIR}/etc/odbc.ini文件到dbuser用戶目錄下
修改以下具體的內(nèi)容
[ODBC Data Sources]
Infdrv1=IBM INFORMIX ODBC DRIVER --這里定義Infdrv1,類(lèi)似于windows中的DSN名稱(chēng)
Infdrv2=IBM INFORMIX ODBC DRIVER
;
; Define ODBC Database Driver's Below - Driver Configuration Section
;
[Infdrv1] --DSN為Infdrv1項(xiàng)
Driver=/opt/informix/lib/cli/iclit09b.so --修改路徑為具體位置
Description=IBM INFORMIX ODBC DRIVER
Database=testdb --數(shù)據(jù)庫(kù)名稱(chēng)
LogonID=informix --登陸數(shù)據(jù)庫(kù)的用戶名
pwd=informix --登陸數(shù)據(jù)庫(kù)用戶的密碼
Servername=ids_online_net --數(shù)據(jù)庫(kù)服務(wù)名INFORMIXSERVER
[Infdrv2] --DSN為Infdrv2項(xiàng),略
......
[ODBC]
;uncomment the below line for UNICODE connection
;UNICODE=UCS-4
;
; Trace file Section
;
Trace=0
TraceFile=/tmp/odbctrace.out
InstallDir=/opt/informix --修改為具體的CSDK安裝目錄
TRACEDLL=idmrs09a.so
在用戶環(huán)境中增加
ODBCINI=${HOME}/odbc.ini
export ODBCINI
4.配置.netrc文件
在用戶目錄下編寫(xiě).netrc文件,格式如下:
machine <數(shù)據(jù)庫(kù)所在的服務(wù)器名或者IP> login <用戶名> password <用戶密碼>
示例:
machine rhel53 login informix password informix
5.配置SQLHOSTS文件,這里使用正在使用的sqlhosts文件,示例如下:
ids_online_net onsoctcp rhel53 9105
6.用戶環(huán)境里增加LD_LIBRARY_PATH
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/cli:$INFORMIXDIR/lib/esql
export LD_LIBRARY_PATH
至此,ODBC就配置完成了。
測(cè)試ODBC連接:
使用informix在${INFORMIXDIR}/demo/cli的目錄下,通過(guò)catalog.c生成catalog可執(zhí)行文件
make catalog
然后拷貝回dbuser的用戶目錄下,
./catalog Infdrv1 --Infdrv1即上面配置的DSN
在類(lèi)似以下的輸出,即表示ODBC連接是成功的~
Using specified DSN : Infdrv1
STEP 1 done...connected to database
Table Name tt
Column: a
Column: b
Column: c
Column: d
STEP 2 done...catalog information obtained from the database
Hit <Enter> to terminate the program...