ODBC(Open Database Connectivity,开放数据库互连)是基于X/OPEN CLI提出的用于访问数据库的应用程序编程接口。应用程序通过ODBC提供的API与数据库进行交互,在避免了应用程序直接操作数据库系统的同时,增强了应用程序的可移植性、扩展性和可维护性。
GaussDB目前在以下环境中提供对ODBC3.5的支持。

UNIX/Linux系统下的驱动程序管理器主要有unixODBC和iODBC,在这选择驱动管理器unixODBC-2.3.0作为连接数据库的组件。
Windows系统自带ODBC驱动程序管理器,在控制面板->管理工具中可以找到数据源(ODBC)选项。
说明:
当前数据库ODBC驱动基于开源版本,对于华为自研的数据类型,tinyint、smalldatetime、nvarchar2在获取数据类型的时候,可能会出现不兼容。
为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下:
- 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。
- 执行如下命令,校验软件包完整性。
cat GaussDB_driver.zip.sha256 | sha256sum --check
如果回显OK,则校验通过。
GaussDB_driver.zip: OK
前提条件
- 已下载Linux版本的ODBC驱动包和Windows版本的ODBC驱动包,开发应用程序要用到unixODBC提供的头文件(sql.h、sqlext.h等)和库libodbc.so。这些头文件和库可从unixODBC-2.3.0的安装包中获得。
- 已下载开源unixODBC代码文件,支持版本为2.3.0,下载地址:https://sourceforge.net/projects/unixodbc/files/unixODBC/2.3.0/unixODBC-2.3.0.tar.gz/download
- 将提供的ODBC DRIVER(psqlodbcw.so)配置到数据源中便可使用。配置数据源需要配置“odbc.ini”和“odbcinst.ini”两个文件(在编译安装unixODBC过程中生成且默认放在“/usr/local/etc”目录下),并在服务器端进行配置。
在Linux下使用ODBC连接数据库
- 安装unixODBC。如果机器上已经安装了其他版本的unixODBC,可以直接覆盖安装。
目前不支持unixODBC-2.2.1版本。以unixODBC-2.3.0版本为例,在客户端执行如下命令安装unixODBC。默认安装到“/usr/local”目录下,生成数据源文件到“/usr/local/etc”目录下,库文件生成在“/usr/local/lib”目录。
tar zxvf unixODBC-2.3.0.tar.gz cd unixODBC-2.3.0 #修改configure文件,找到LIB_VERSION #将它的值修改为"1:0:0",这样将编译出*.so.1的动态库,与psqlodbcw.so的依赖关系相同。 vim configure ./configure --enable-gui=no #如果要在鲲鹏服务器上编译,请追加一个configure参数: --build=aarch64-unknown-linux-gnu make #安装可能需要root权限 make install
- 替换客户端GaussDB驱动程序。
将GaussDB-Kernel-VxxxRxxxCxx-EULER-64bit-Odbc.tar.gz解压到“/usr/local/lib”目录下。解压会得到“psqlodbcw.la”和“psqlodbcw.so”两个文件。
- 配置数据源。
- 配置ODBC驱动文件。
在“/usr/local/etc/odbcinst.ini”文件中追加以下内容。
[GaussMPP] Driver64=/usr/local/lib/psqlodbcw.so setup=/usr/local/lib/psqlodbcw.so
odbcinst.ini文件中的配置参数说明如表3所示。
表3 odbcinst.ini文件配置参数 参数
描述
示例
[DriverName]
驱动器名称,对应数据源DSN中的驱动名。
[DRIVER_N]
Driver64
驱动动态库的路径。
Driver64=/xxx/odbc/lib/psqlodbcw.so
setup
驱动安装路径,与Driver64中动态库的路径一致。
setup=/xxx/odbc/lib/psqlodbcw.so
- 配置数据源文件。
在“/usr/local/etc/odbc.ini ”文件中追加以下内容。
[gaussdb] Driver=GaussMPP Servername=10.10.0.13(数据库Server IP) Database=postgres (数据库名) Username=omm (数据库用户名) Password= (数据库用户密码) Port=8000 (数据库侦听端口) Sslmode=allow
- 配置ODBC驱动文件。





