回复 0770_NN 关于 ODBC 配置原理
看你的配置,乱乱的,我讲下ODBC参数关系
1.原理,ODBC通过开放的特定端口与数据库沟通.既然是端口,必须服务端和客户端都要有!
2.详例: 环境: 服务端:Redhat Linux +Informix 11.5(非se版)<硬件4核单CPU> ,客户端: Windows XP
Linux: 第一条件: shm(共享内存方式)必须先online 起来,然后再添加ODBC相关参数,再重起服务器,看online起来没有,
<注意:在添加ODBC 参数前,记得备份相关配置文件>
配置如下:
uname -a
Linux tiptop 2.6.18-92.el5xen #1 SMP Tue Apr 29 13:45:57 EDT 2008 i686 i686 i386
cat onconfig.top|grep 01
DBSERVERNAME on_shm01
DBSERVERALIASES on_tcp01 # ODBC
cat onconfig.top|grep 150
NETTYPE ipcshm,2,150,CPU
NETTYPE soctcp,1,150,NET #ODBC
cat sqlhosts|grep tiptop
on_shm01 onipcshm tiptop on_shm01_srv
on_tcp01 onsoctcp tiptop on_tcp01_srv #ODBC
cat /etc/services|grep tcp01
on_tcp01_srv 9902/tcp #ODBC
netstat -na|grep 9902
tcp 0 0 192.168.1.100:9902 0.0.0.0:* LISTEN
#上面检查服务器ODBC服务是否起来,如果是如下状态,必须修改/etc/hosts
tcp 0 0 172.0.0.1:9902 0.0.0.0:* LISTEN
修改:
cat hosts|grep tiptop
127.0.0.1 tiptop localhost.localdomain localhost
到:
cat hosts|grep tiptop
127.0.0.1 localhost.localdomain localhost
192.168.1.100 tiptop
不明白原因..你看在sqlhost文件里是有引用电脑名'tiptop' 所以必须在linux上让'tiptop'指向真实IP,才能对外服务嘛!
如果 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"
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
这时不要点Apply&Test Connection #即是点,也出错的!
继续配置:
Enveronment:
Client Locale zh_TW.big5
Database Locale zh_TW.big5
Use Server Database Locale [] 可打可不打,打了的话
atabase 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
恭喜你,成功了!