#ODBC驱动安装(Linux)

本文以Centos 7.3.1为例,介绍YashanDB ODBC驱动在该环境下的安装配置过程。

# 步骤1:安装unixODBC

yum install unixODBC-devel
yum install unixODBC

# 步骤2:安装YashanDB C驱动

# 步骤1:下载C驱动安装包

  1. YashanDB官网下载中心 (opens new window)或联系我们的技术支持获取对应的软件包。

  2. 将YashanDB客户端安装包下载并解压到本地路径,例如/home/yasdb-driver-c/。

    安装包解压后可得到C驱动所需文件:

    • bin:C驱动的可执行文件(目前包括yasql)。

    • C驱动的头文件:位于include文件夹中。

    • C驱动的库文件:位于lib文件夹中。

# 步骤3:安装YashanDB ODBC驱动

  1. YashanDB官网下载中心 (opens new window)或联系我们的技术支持获取对应的软件包。

  2. 将ODBC驱动安装包下载并解压到本地路径,例如/home/yashandb_odbc/。

  3. 安装ODBC驱动(so路径仅为示例,请使用实际的libyas_odbc.so路径)。

    $ vi /etc/odbcinst.ini
    
    [YashanDB]
    Description     = ODBC for YashanDB
    Driver          = /home/yashandb_odbc/libyas_odbc.so
    Setup           = /home/yashandb_odbc/libyas_odbc.so
    Driver64        = /home/yashandb_odbc/libyas_odbc.so
    Setup64         = /home/yashandb_odbc/libyas_odbc.so
    FileUsage       = 1
    

# 步骤4:配置数据源

$ vi /etc/odbc.ini

[YASTEST]
Description  = YashanTest
Driver       = YashanDB
SERVER       = 127.0.0.1
PORT         = 1688
URL          = 127.0.0.1:1688
USER         = sys
PWD          = sys

配置项中的URL为数据源的完整URL。配置URL参数后,SERVER和PORT参数将不会再生效。

URL格式如下:

  • 单地址连接: host:port

  • 多个地址连接:serverType:host:port,host:port,host:port,host:port,多个地址间用,分隔,连接时根据服务类型(serverType参数)配置对相应节点进行连接。

  • 多组地址连接:serverType:host:port,host:port;host:port,host:port,多组地址间用;分隔,同组内的多个地址间用,分隔,连接时先在组内根据serverType配置对相应节点进行连接,当组内所有连接均失败后按顺序优先级(越靠前优先级越高)访问下一组。

参数含义:

  • host:port:

    • host:数据库所在服务器的网络地址,可以为IPv4地址、IPv6地址或域名。在共享集群部署中,若已配置SCANVIP,还可以使用相应的域名或IP地址。

    • port:数据库服务端监听端口,如安装过程中未进行调整,默认为1688。

  • serverType:多地址连接的连接类型,可选项包括primary、standby、loadBalance、primaryLoadBalance以及standbyLoadBalance。若不指定serverType,在输入多IP时默认采用primary。各类型的详细介绍如下:

    serverType 说明
    primary 按顺序优先级连接主节点,驱动将按照指定的监听地址先后顺序对节点进行角色判断并连接首个主节点。
    默认类型,可省略。
    standby 按顺序优先级连接备节点,驱动将按照指定的监听地址先后顺序对节点进行角色判断并连接首个符合要求的节点。
    loadBalance 负载均衡连接最优节点,驱动将自动识别出连接数最少的节点并连接。
    primaryLoadBalance 负载均衡连接最优的主节点,驱动会先判别节点角色,再识别出连接数最少的主节点进行连接。若连接数相同,则按优先级顺序连接靠前的节点。
    standbyLoadBalance 负载均衡连接最优的备节点,驱动会先判别节点角色,再识别出连接数最少的备节点进行连接。若连接数相同,则按优先级顺序连接靠前的节点。

Note:

  • 在共享集群/分布式集群部署中,若已配置SCANVIP,直接使用数据库服务端提供的高可用能力即可,无需额外配置多地址连接。
  • 配置多地址连接共享集群/分布式集群时:
    • 若为单集群部署,驱动会将其所有实例视作主节点。
    • 在主备集群部署中,驱动会将主集群的所有实例视作主节点、备集群的所有实例视作备节点。
  • 多组监听地址连接的故障切换效率低于多个监听地址连接,分组主要用于尽可能保障仅通过第一组地址建立数据库连接,请根据实际需求选择是否分组。

此处可进行字符集设置(前提是使用ANSI驱动,Linux默认ANSI ODBC字符集是UTF8),可使用以下数据源配置设置字符集:

# 目前支持的字符集有:ASCII、ISO88591、GBK、UTF8、UTF16、GB18030
CHARACTER_SET = UTF8

# 步骤5:测试连接

# 数据源名称以yastest为例
$ isql yastest -v

# 查看数据源名称
$ odbcinst -q -s

# 查看驱动名称
$ odbcinst -q -d

# 查看驱动配置
$ odbcinst -j

# 步骤6:(可选)使用yasodbc自带test程序测试连接

执行yasodbctest,数据源名称以yastest为例。

$ ./yasodbctest yastest sys sys
# 或者
$ ./yasodbctest yastest

使用exit退出。

> exit

edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流