Linux平台驱动注册和数据源配置¶
由于Linux平台默认没有像windows下odbc数据源管理器的工具,因此需要使用开源的Unixodbc模块,Unixodbc是类似于windows下odbc数据源管理器 ,可提供对驱动的注册和数据源的配置。
Unixodbc提供了2个配置文件, odbcinst.ini和odbc.ini文件。odbcinst.ini文件是用于注册驱动的;而odbc.ini是用于配置数据源的。
使用神通向导工具注册数据源¶
神通安装目录中,提供了在Linux下注册驱动的一个工具stodbc_config,程序所在路径为$SZ_OSCAR_HOME/drivers/odbc/bin目录下,stodbc_config工具是向odbcinst.ini写入神通数据库ODBC驱动,同时往odbc.ini写入数据源配置。
如果操作系统中原来没有安装Unixodbc模块,则执行stodbc_config后,会在/etc/目下自动生成odbcinst.ini和odbc.ini文件。
stodbc_config工具的大概使用流程:
- 执行stodbc_config,进入神通odbc配置工具页面:
欢迎使用神通ODBC数据源配置管理终端 2.0.0 FOR LINUX
获取到当前环境unixODBC配置文件路径如下, 后续的数据源配置会变更到如下文件 :
ODBCINI = /usr/local/etc/odbc.ini
ODBCINSTINI = /usr/local/etc/odbcinst.ini
备注:配置文件获取优先级顺序如下:
1、获取ODBCINI和ODBCINSTINI环境变量
2、本工具依赖的unixodbc库在编译时指定的--prefix安装路径
3、默认路径/etc
------------------------
神通ODBC驱动DSN数据源管理
1 神通ODBC驱动
2 神通ODBCW驱动
exit 退出程序
- 选择2,后进入选项:
选择驱动类型> 2
-----------------------
<OSCAR ODBCW DRIVER> 管理
1 查看当前系统中的DSN数据源
2 DSN数据源管理(创建、修改、删除、测试)
back 返回上层
exit 退出程序
- 选项1为查看当前系统中存在的数据源,2为创建或修改数据源,这选择2:
输入选项> 2
--------------
DSN数据源管理
1 创建一个DSN数据源
2 修改一个存在的DSN数据源
3 删除一个存在的DSN数据源
4 测试DSN数据源
back 返回上层
exit 退出程序
- 选项1为创建一个数据源、2为修改一个数据源、3为删除一个数据源、4为测试一个数据,这里选择1。
输入选项> 1
DSN数据源名:> osdn
主机(Server):> localhost
实例名(Database):> osrdb
端口(Port):> 2003
用户名(UserName):> sysdba
密码(Password):> *********
信息确认:
[osdn]
Servername = localhost
Port = 2003
Database = osrdb
Username = sysdba
Password = szoscar55
输入 (y)es or (n)o >
配置完成后的确认处,输入y确认,至此该数据源配置完成,接下来会对此数据源进行连接测试后会回到步骤3处。
人工修改驱动或数据源¶
通过stodbc_config配置驱动和数据源,其实是在/etc目录下添加了odbc.ini和odbcinst.ini文件:
odbcinst.ini文件内容如下:
# Driver from the OSCAR ODBC package
[OSCAR ODBCW DRIVER]
Description = oscar odbc for linux
Driver64 =/opt/ShenTong/drivers/odbc/lib/liboscarodbcw.so
Setup64 =/opt/ShenTong/drivers/odbc/lib/liboscarodbcw.so
FileUsage = 1
odbc.ini文件内容如下:
[ODBC Data Sources]
odsn = OSCAR ODBCW DRIVER
[odsn]
Driver = /opt/ShenTong/drivers/odbc/lib/liboscarodbcw.so
Servername = localhost
Port = 2003
Database = osrdb
Username = sysdba
Password = szoscar55
SocketBufferSize = 4096
FetchBufferSize = 100
注意
如果stodbc_config工具不可用,也可以人工生成odbc.ini和odbcinst.ini文件,并填入上述内容即可,也是可以的。
确保神通odbc库的依赖库是存在的¶
在Linux环境下,神通的odbc库依赖libodbc.so.* 和libodbcinist.so.*,以及相关SSL库,需要确认神通的odbc库文件依赖的文件也是存在的,可以用ldd命令查看依赖,比如:
ldd liboscarodbcw.so
如果ldd命令出来有not found的一些库,需要进行补齐。
Unixodbc常用环境变量¶
ODBCINI和 ODBCSYSINI环境变量¶
从unixodbc下载的源码,进行安装,安装时指定--prefix选项用于指定unixodbc路径(默认路径为/usr/local/),安装完后,通过odbc_config --odbcini 或者 odbcinst -j 命令获得安装的odbc.ini或odbcinst.ini文件所在路径。
如果安装在/usr/local下,odbc.ini和odbcinst.ini文件在在/usr/local/etc下;
如果安装在/下,odbc.ini和odbcinst.ini文件在在/etc下;
unixodbc默认会到安装目录中查找ini文件,但unixodbc提供了连个环境变量,用于手动更改寻找ini文件的路径:
ODBCINI : 设置odbc.ini文件路径,比如export ODBCINI=/opt/odbc.ini
ODBCSYSINI : 设置odbcinst.ini文件路径,比如export ODBCSYSINI=/opt/odbcinst.ini
环境变量的获取优先级高于安装目录!
注意
unixodbc的库文件可能是拷贝其他机器上编译安装的库,这些库拷贝到其他机器上也可以使用,但需要在odbc库编译时指定的安装路径中配置ini文件,同时也可以设置ODBCINI和ODBCSYSINI来更改ini文件路径。
如何确认Unixodbc引用配置文件的位置¶
神通数据库自带的libodbc.so和libodbcinist.so库默认会查找/etc目录下的odbc.ini和odbcinst.ini。如果操作系统自行安装了unixodbc,则odbc.ini和odbcinst.ini的路径需要自行确定