Linux下ODBC安装配置
ODBC 原理
ODBC 是 Open Database Connect 即开放数据库互连的简称,它是由 Microsoft 公司于 1991 年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件。它通过使用相应应用平台上和所需数据库对应的驱动程序与应用程序的交互来实现对数据库的操作,避免了在应用程序中直接调用与数据库相关的操作,从而提供了数据库的独立性。
ODBC 主要由驱动程序和驱动程序管理器组成。驱动程序是一个用以支持 ODBC 函数调用的模块,每个驱动程序对应于相应的数据库,当应用程序从基于一个数据库系统移植到另一个时,只需更改应用程序中由 ODBC 管理程序设定的与相应数据库系统对应的别名即可。驱动程序管理器可链接到所有 ODBC 应用程序中,它负责管理应用程序中 ODBC 函数与 DLL 中函数的绑定。
ODBC 使用层次的方法来管理数据库,在数据库通信结构的每一层,对可能出现依赖数据库产品自身特性的地方, ODBC 都引入一个公共接口以解决潜在的不一致性,从而很好地解决了基于数据库系统应用程序的相对独立性,这也是 ODBC 一经推出就获得巨大成功的重要原因之一。
从结构上分, ODBC 分为单束式和多束式两类。
1. 单束式驱动程序
单束式驱动程序介于应用程序和数据库之间,像中介驱动程序一样数据提供一个统一的数据访问方式。当用户进行数据库操作时,应用程序传递一个 ODBC 函数调用给 ODBC 驱动程序管理器,由 ODBC API 判断该调用是由它直接处理并将结果返回还是送交驱动程序执行并将结果返回。由上可见,单束式驱动程序本身是一个数据库引擎,由它直接可完成对数据库的操作,尽管该数据库可能位于网络的任何地方。
2. 多束式驱动程序
多束式驱动程序负责在数据库引擎和客户应用程序之间传送命令和数据,它本身并不执行数据处理操作而用于远程操作的网络通信协议的一个界面。前端应用程序提出对数据库处理的请求,该请求转给 ODBC 驱动程序管理器,驱动程序管理器依据请求的情况,就地完成或传给多束驱动程序,多束式驱动程序将请求翻译为特定厂家的数据库通信接口(如 Oracle 的 SQLNet )所能理解的形式并交于接口去处理,接口把请求经网络传送给服务器上的数据引擎,服务器处理完后把结果发回给数据库通信接口,数据库接口将结果传给多束式 ODBC 驱动程序,再由驱动程序将结果传给应用程序。
很多程序员已经体会到了在 Windows 平台下的 ODBC 的益处,而在 Linux/Unix 下进行数据库编程的时候却不得不根据不同的数据库来选择特有的 API 进行编程,一旦数据库发生了改变,所有与这些 API 相关的程序都必须进行修改。其实在 Linux/Unix 下现在也有了自己的 ODBC ,可以使我们的数据库编程就像在 Windows 平台下一样简单。
下面我们开始介绍 Linux/Unix 下的 ODBC :
Linux/Unix 下 ODBC 的安装
方法一:
先下载最新的 unixODBC 源码包( http://www.unixodbc.org/unixODBC-2.2.1.tar.gz )放到 /usr/local 下,然后运行下述命令:
tar zxvf unixODBC-2.2.1.tar.gz
cd unixODBC-2.2.1
./configure --prefix=/usr/local/unixODBC-2.2.1 --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc
make && make install
安装成功后, unixODBC 所需的头文件都被安装到了 /usr/inlucde 下,编译好的库文件安装到了 /usr/lib 下,与 unixODBC 相关的可执行文件安装到了 /usr/bin 下,配置文件放到了 /etc 下。
方法二:
下载 rpm 包进行安装,我们这里以 Red Hat 7.3 为例:
unixODBC-2.2.0-5 RPM for i386 (安装包及源码包)
( ftp://speakeasy.rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/unixODBC-2.2.0-5.i386.rpm 、 ftp://ftp.rpmfind.net/linux/redhat/7.3/en/os/i386/SRPMS/unixODBC-2.2.0-5.src.rpm )
unixODBC-devel-2.2.0-5 RPM for i386
( ftp://speakeasy.rpmfind.net/linux/redhat/7.3/en/os/i386/RedHat/RPMS/unixODBC-devel-2.2.0-5.i386.rpm )
直接将 unixODBC-2.2.0-5.i386.rpm 和 unixODBC-devel-2.2.0-5.i386.rpm 装入系统就可以了,命令如下:
rpm -ivh unixODBC-2.2.0-5.i386.rpm
rpm -ivh unixODBC-devel-2.2.0-5.i386.rpm
安装好以后,所需的各个部分与上面所列的位置相同。
Linux/Unix 下 ODBC 的配置
运行 ODBCConfig 程序(在 /usr/bin 下),如下图:
图一: ODBCConfig 主窗口
和 Windows 下的 ODBC 设置窗口是不是很像?我想大家都能看懂吧。
第一步:安装数据库的 ODBC 驱动程序
Drivers 这一栏中用来设置数据库的驱动程序,点击 Add 按钮,会出现下图:
图二: ODBCConfig Driver Properties 窗口
Name 一栏填入数据库驱动的名称, Description 是数据库驱动的描述, Driver 是用来选择数据库驱动程序的, Setup 是用来选择数据库驱动安装程序的,如果你是按照上述安装方法安装的,这些程序都放在 /usr/lib 下,下面是数据库驱动程序的列表:
数据库 |
数据库驱动程序 |
数据库驱动安装程序 |
TXT |
libodbctxt.so |
libodbctxtS.so |
NNTP |
libnn.so |
libodbcnnS.so |
MiniSQL |
libodbcmini.so |
libodbcminiS.so |
PostgreSQL |
libodbcpsql.so |
libodbcpsqlS.so |
MySQL |
(注释) |
libodbcmyS.so |
Sybase/MS SQL |