1.什么是ODBC
开放数据库互联(ODBC)是数据库应用程序编程接口(API)的一种规范,支持带有C函数库的SQL语句。ODBC不需要预处理器来编译应用程序,可支持”安全套接层”(SSL)。KingbaseES支持使用ODBC连接至数据库。
2.UnixODBC的安装与配置
在Linux平台下如果需要使用OBDC连接数据库,则需要先安装unixODBC,然后在安装相应的ODBC驱动。
有些操作系统如果自带了unixODBC,则无需安装(执行odbcinst –version命令检测是否已经安装)。
安装包获取
1.官网下载www.unixodbc.org
unixODBC-2.3.7.tar.gz
编译安装
1.检查是否有gcc
[root@host2 ~]# gcc
-bash: gcc: command not found
安装机器上没有gcc,安装gcc
yum install gcc –y
2.解压文件
tar -xvf unixODBC-2.3.7.tar.gz
3.编译安装
[root@host3 unixODBC]# cd unixODBC-2.3.7
[root@host3 unixODBC-2.3.7]# ./configure --prefix=/usr/local/unixODBC
[root@host3 unixODBC-2.3.7]#make
[root@host3 unixODBC-2.3.7]#make install
配置环境变量
[root@host3 unixODBC-2.3.7]# touch /etc/profile.d/unixOdbc.sh
unixOdbc.sh文件内容如下:
export ODBCMD_HOME=/usr/local/unixODBC
export PATH=$ODBCMD_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ODBCMD_HOME/lib:$LD_LIBRARY_PATH
执行 source /etc/profile使配置的环境变量生效
验证unixODBC安装配置是否成功
[root@host3 unixODBC-2.3.7]# odbcinst --version
unixODBC 2.3.7
[root@host3 unixODBC-2.3.7]# odbcinst -j
unixODBC 2.3.7
DRIVERS............: /usr/local/unixODBC/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/unixODBC/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/unixODBC/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
能够正确的输出unixODBC版本号,说明安装配置成功了。
3.使用ODBC连接KingbaseES数据库
3.1.修改配置文件
修改odbc.ini
vim /usr/local/unixODBC/etc/odbc.ini
[V8R3]
Description=KingbaseES
Driver=KingbaseES V8R3 ODBC Driver
Servername=2000::5609
Database=TEST
Username=SYSTEM
Password=12345678ab
Port=54321
修改odbcinst.ini
vim /usr/local/unixODBC/etc/odbcinst.ini
[KingbaseES V8R3 ODBC Driver]
Description=ODBC for KingbaseES
Driver=/home/kingbase/370/patch/odbc/lib/kdbodbcw.so
Debug=1
CommLog=1
使文件生效
source ~/.bash_profile
测试连接
[root@host1 profile.d]# isql v8r3
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select count(*) from t1;
+---------------------+
| count |
+---------------------+
| 470797 |
+---------------------+
SQLRowCount returns 1
1 rows fetched
SQL>
更多信息,参见help.kingbase.com.cn/v8/index.ht…