关于 ODBC 配置原理
我讲下ODBC参数关系
1.原理,ODBC通过开放的特定端口与数据库沟通.既然是端口,必须服务端和客户端都要有!
2.详例: 环境: 服务端:Redhat Linux +Informix 11.5(非se版)<硬件4核单CPU> ,客户端: Windows XP
Linux: 第一条件: shm(共享内存方式)必须先online 起来,然后再添加ODBC相关参数,再重起服务器,看online起来没有,
<注意:在添加ODBC 参数前,记得备份相关配置文件>
配置如下:
</u1/informix/etc> uname -a
Linux tiptop 2.6.18-92.el5xen #1 SMP Tue Apr 29 13:45:57 EDT 2008 i686 i686 i386
</u1/informix/etc> cat onconfig.top|grep 01
DBSERVERNAME on_shm01
DBSERVERALIASES on_tcp01 # ODBC
</u1/informix/etc> cat onconfig.top|grep 150
Sqlclub学习社区
NETTYPE ipcshm,2,150,CPU
NETTYPE soctcp,1,150,NET #ODBC
</u1/informix/etc> cat sqlhosts|grep tiptop
on_shm01 onipcshm tiptop on_shm01_srv
on_tcp01 onsoctcp tiptop on_tcp01_srv #ODBC
</u1/informix/etc> cat /etc/services|grep tcp01
on_tcp01_srv 9902/tcp #ODBC
</u1/informix/etc> netstat -na|grep 9902
tcp 0 0 192.168.1.100:9902 0.0.0.0:* LISTEN
#上面检查服务器ODBC服务是否起来,如果是如下状态,必须修改/etc/hosts
copyright Sqlclub
tcp 0 0 172.0.0.1:9902 0.0.0.0:* LISTEN
修改:
</etc>cat hosts|grep tiptop
127.0.0.1 tiptop localhost.localdomain localhost
到:
</etc>cat hosts|grep tiptop
127.0.0.1 localhost.localdomain localhost
192.168.1.100 tiptop
不明白原因..你看在sqlhost文件里是有引用电脑名'tiptop' 所以必须在linux上让'tiptop'指向真实IP,才能对外服务嘛!
如果</u1/informix/etc> netstat -na|grep 9902 都没有9902服务,表示informix ODBC服务没起来.
可以用如:isql -s ds1@on_tcp01 或 dbaccess ds1@on_tcp01 测试Informix 网络服务起来没!
Windows XP: 如果你用的是informix 11.5UC3 匹配的ODBC组件版本:3.50.TC3
C:/WINDOWS/system32/drivers/etc>type services|find "9902" Sqlclub学习社区
on_tcp01_srv 9902/tcp
安装后配置Setnet32
Environment:
CLIENT_LOCALE=zh_TW.big5
DB_LOCALE=zh_TW.big5
DBLANG=zh_TW.big5
INFORMIXDIR=C:/Program Files/IBM/Informix/Client-SDK/
Server Information:
IBM Informix Server on_tcp01
HostName 192.168.1.100
Protocolname: onsoctcp
Service Name: on_tcp01_srv
Host Information
Current Host: 192.168.1.100
UserName: informix
Password Option: Paaword
Pssword: XXX
然后重起电脑!
要使用或测试的话,就必须去控制面板的数据源ODBC,添加一个对象了!
用户DSN:
添加 Informix ODBC
General:
Data Source Name: tiptoperp #起个名字
Connection:
Server Name: on_tcp01
Host Name: 192.168.1.100
Service: on_tcp01_srv
Protocol: onsoctcp
Database Name: demo7
User Id: Informix
Paaword: xxxxx Sqlclub.cn
这时不要点Apply&Test Connection #即是点,也出错的!
继续配置:
Enveronment:
Client Locale zh_TW.big5
Database Locale zh_TW.big5
Use Server Database Locale [] 可打可不打,打了的话,Database Locale 变 zh_TW.57352
Translation Library C:/Program Files/IBM/Informix/Client-SDK/bin/igo4n304.dll
# Library 一定要配置,它用来解释ODBC命令的
这时可以回到
Connection:
点Apply&Test Connection
如果出现:
Test connection was successful
恭喜你,成功了!
本篇文章来源于 SQL学习社区 原文链接:http://www.sqlclub.cn/JiChuGuanLi/2009-04/1990.htm