Apache Doris 通过ODBC连接SQL Server
社区有小伙伴有使用Doris ODBC外表连接SQL Server数据库,使用中遇到不知道驱动怎么安装,苦于我这边也没有SQL Server的环境,正好社区有用户使用了这个数据库,也安装ODBC驱动测试成功,贡献了一篇文档,非常感谢来自上海微束信息科技的杨辉的贡献,给社区其他用户提供了参考
1.系统环境
CentOS 7.7.1908
2. 安装包
unixODBC :2.3.9
freetds:1.2.21
3. 部署步骤
3.1 安装unixODBC (源码安装)
下载最新的unixODBC源码包,下载url:http://www.unixodbc.org ,放置目录下,如:/usr/local,然后执行以下命令:
# tar zxvf unixODBC-2.3.9.tar.gz
# cd unixODBC-2.3.9/
# ./configure --prefix=/usr/local/unixODBC-2.3.9 --includedir=/usr/local/include --libdir=/usr/local/lib --bindir=/usr/bin --sysconfdir=/usr/local/etc
# make && make install
安装目录为/usr/local/unixODBC-2.3.9,安装成功后,unixODBC所需的头文件都被安装到了/usr/inlucde下,编译好的库文件安装到了/usr/local/lib 下,与unixODBC相关的可执行文件安装到了/usr/bin下,配置文件放到了/usr/local/etc下。
若./configure编译过程中出现如下错误信息:
configure: error: no acceptable C compiler found in $PATH
需安装gcc组件,命令如下:
# yum –y install gcc
也可通过二进制安装,命令如下:
# yum –y install unixODBC unixODBC-devel
3.2 检查unixODBC安装情况
验证安装是否成功
$> odbcinst -j
unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
3.3 安装FreeTDS
下载freetds-1.2.21,官网地址:http://www.freetds.org/
FreeTDS是unix 和Linux library的一个集合,通过FreeTDS可以连接到MicrosoftSQL Server 和 Sybase DB
执行以下命令:
# cd freetds-1.2.21/
# ./configure --help查看当前支持的 tdsver 版本,选择对应支持的 MSSQL 版本
# 编译安装,注意 tdsver 版本
# ./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC-2.3.9 --enable-msdblib --with-tdsver=7.4
# make && make install
安装参数说明
--prefix=/usr/local/freetds FreeTDS的默认安装目录 /usr/local/freetds
--enable-msdblib 允许Microsoft 的函数库
--with-tdsver=7.4 指定TDS的协议版本,不填写则默认5.0版,7.5支持MSSQL2008和MSSQL2014
3.4 检查FreeTDS安装情况
直接连接MSSQL数据库:
# /usr/local/freetds/bin/tsql –H 101.133.218.30 –p1433 –Usa –P<sa密码>

配置文件连接:
在 FreeTDS 的配置文件中添加指向具体数据库的访问信息 修改/usr/local/etc/freetds.conf文件,添加如下内容:
[mssqlserver]
host =
port = 1433
tds version = 7.4
client charset = UTF-8
连接:
# /usr/local/freetds/bin/tsql -S mssqlserver -U sa -P <sa密码>

4. 配置ODBC连接MSSQL
在/etc/odbcinst.ini(或/usr/local/etc/odbcinst.ini)中登记FreeTDS驱动
# vi /etc/odbcinst.ini
# Driver from FreeTDS package
# setup from FreeTDS package
[FreeTDS] # unixodbc驱动名称
Description=ODBC of FreeTDS for MS SQL 2008 # 简介
Driver=/usr/local/freetds/lib/libtdsodbc.so # 驱动所在位置

在/etc/odbc.ini(或/usr/local/etc/odbc.ini)配置MSSQL数据链接信息
[Data Sources]
erp255= erp255
[erp255]
Driver = /usr/local/freetds/lib/libtdsodbc.so
Description = My Second Test DSN
Trace = No
Server =
Database =
Port = 1433
TDS_Version = 7.4
测试ODBC链接
# isql –v erp255 sa <sa密码>

修改Doris BE ODBC配置文件
在doris be conf文件夹中找到 dbcinst.ini文件
在文件中添加SQL Server驱动信息
[SQL Server]
Description = ODBC for SQL Server
Driver = /usr/local/freetds/lib/libtdsodbc.so
Setup = /usr/local/freetds/lib/libtds.so
FileUsage = 1
建立ODBC资源如下:

Apache Doris 通过ODBC连接SQL Server的更多相关文章
- C#调用ODBC连接SQL Server数据库的存储过程
OdbcConnection con = new OdbcConnection("Driver={SQL Server};server=PC-200201070359;uid=sa;pwd= ...
- Qt通过ODBC连接SQL Server2008实践总结
Qt连接数据库的方式很多,这里说明一种最常用也是最实用的方式,因为这种方式在Windows上开发程序使用起来非常方便,并且也是远程连接数据库所需要用到的方式. 前提工作: 在Win7下安装了SQL S ...
- Ubuntu下erlang连接SQL SERVER 2008
erlang连接SQL Server使用ODBC方法,但在网络上还是缺少资料,自己折腾了2天才成功.现在特记录下来,以供大家借鉴. 基本思路是 erlang odbcserver + unixodbc ...
- Excel VBA 连接各种数据库(三) VBA连接SQL Server数据库
本文主要涉及: VBA中的SQL Server环境配置 VBA连接SQL Server数据库 VBA读写SQL Server数据 如何安装SQL Client 系统环境: Windows 7 64bi ...
- 【原创】Qt 使用ODBC driver 连接SQL Server
最近在做数据库的课程设计.第一个需要解决的问题是使用什么工具来实现这个系统.经过一番资料查找,决定使用SQL Server Express 2012作为服务器,使用Qt作为编写客户端程序语言.问题是c ...
- 细聊Oracle通过ODBC数据源连接SQL Server数据库
类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,文章结尾处的一些扩展有一定实战意 ...
- php连接sql server
这两天有个php连接sql server的项目,顺便学习学习sql server 说明: 1:PHP5.2.x本身有个php_mssql.dll的扩展用来连接Sql server,但是这个dll只是 ...
- thinkphp5连接sql server
我用的环境是phpstudy,php版本是5.6,thinkphp连接sql server 方法如下: 1.修改database.php文件里的数据库信息 2.进入php扩展目录.我的是“E:\php ...
- PHP5.6.15连接Sql Server 2008配置方案
php5.6的如果想连接Sql Server 2008数据库,需要手动配置扩展和安装一个驱动. 下载SQL Server Driver for PHP的扩展包,64位系统的官方不支持,找到一个非官方的 ...
随机推荐
- OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
前言 移植opencv到海思平台,opencv支持对视频进行解码,需要对应的ffmpeg支持. Ffmpeg的移植 Ffmpeg的移植请参考之前的文章:<FFmpeg开发笔记(十): ...
- I 安装饮水机 中国石油大学新生训练赛#10
问题 I: 安装饮水机 时间限制: 1 Sec 内存限制: 128 MB提交 状态 题目描述 为倡导城市低碳生活,市文明办计划举办马拉松比赛,为确保比赛安全,沿途设置了一些观察点.每个观察点派一个观 ...
- K-good number Theory + 数学问题
这道题是我做CodeTon Round1时的D题,总的来看思路很重要,有几个比较明显的切入问题的角度,要选择到最优的那个: 先看题目: 我们可以发现,这道题的描述一目了然,就是说我们能不能找k个数的和 ...
- @SpringBootApplication注释在内部有什么用处?
作为Spring引导文档,@SpringBootApplication注释等同于同时使用@Configuration.@EnableAutoConfiguration和@ComponentScan及其 ...
- 为什么Java中不支持多重继承?
我发现这个 Java 核心问题很难回答,因为你的答案可能不会让面试官满意,在大多数情况下,面试官正在寻找答案中的关键点,如果你提到这些关键点,面试官会很高兴.在 Java 中回答这种棘手问题的关键是准 ...
- 如何使用 Spring Boot 实现分页和排序?
使用 Spring Boot 实现分页非常简单.使用 Spring Data-JPA 可以实现将可分页的传递给存储库方法.
- Oracle入门基础(四)一一多行函数
SQL> --工资总额 SQL> select sum(sal) from emp; SUM(SAL) 29025 SQL> --人数 SQL> select count(*) ...
- java-方法引用
/** * 方法引用格式: * 双冒号:: 引用运算符,它所在的表达式被称为方法引用.如果Lambda表达式 * 的函数方案已经存在于某个地方的实现中, * ===>那么可以通过双冒号来引用改方 ...
- Java 中,受检查异常 和 不受检查异常的区别?
受检查异常编译器在编译期间检查.对于这种异常,方法强制处理或者通过 throws 子句声明.其中一种情况是 Exception 的子类但不是 RuntimeException 的子类.非受检查是 Ru ...
- Lambda8 表达式
Lambda 表达式 Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构. JDK 也提 ...