1.Apache Doris 码里通过ODBC连接SQL Server
2.mysql-odbc编译
Apache Doris 通过ODBC连接SQL Server
社区中一些用户尝试使用Doris ODBC外表连接SQL Server数据库时,遇到了驱动安装的码里问题。由于作者没有SQL Server的码里环境,幸运的码里是社区中有一位名叫杨辉的用户成功进行了测试并撰写了文档,这对于其他用户来说是码里一份宝贵的参考。
1. 系统环境
CentOS 7.7.
2. 安装包
unixODBC:2.3.9
freetds:1.2.
3. 部署步骤
3.1 安装unixODBC(源码安装)
下载最新的码里varaa指标源码unixODBC源码包,放置在如/usr/local的码里目录下,执行以下命令进行安装:
安装目录为/usr/local/unixODBC-2.3.9,码里成功安装后,码里头文件会安装在/usr/include下,码里库文件在/usr/local/lib下,码里可执行文件在/usr/bin下,码里配置文件在/usr/local/etc下。码里
如果编译过程中出现“configure: error: no acceptable C compiler found in $PATH”错误,码里需要安装gcc组件,码里命令如下:
3.2 检查unixODBC安装情况
3.3 安装FreeTDS
下载freetds-1.2.,官网地址为freetds.org/
FreeTDS是jquery anmate 源码一个Unix和Linux的库集合,通过FreeTDS可以连接到Microsoft SQL Server和Sybase DB。
执行以下命令:
3.4 检查FreeTDS安装情况
直接连接MSSQL数据库:
配置文件连接:
在FreeTDS的配置文件中添加指向具体数据库的访问信息,修改/usr/local/etc/freetds.conf文件,添加如下内容:
4. 配置ODBC连接MSSQL
在/etc/odbcinst.ini(或/usr/local/etc/odbcinst.ini)中登记FreeTDS驱动
在/etc/odbc.ini(或/usr/local/etc/odbc.ini)配置MSSQL数据链接信息
测试ODBC链接,修改Doris BE ODBC配置文件
在doris be conf文件夹中找到dbcinst.ini文件,添加SQL Server驱动信息
建立ODBC资源如下:
mysql-odbc编译
近期工作中需要编译mysql-odbc的驱动库,以下为遇到的问题及解决方法。
首先,网站挂件源码参照官网指南进行操作:MySQL :: MySQL Connector/ODBC Developer Guide :: 4.5 Building Connector/ODBC from a Source Distribution on Unix。
由于之前未接触过,对基本概念不甚了解。
首先,需要配置好依赖项目,如libmysqlclient.a。系统配置中需包含iodb或unixODBC。指南中已明确说明。python flask源码
为使用静态库,我下载了mysql-8.0.编译的libmysqlclient库。
解压.src.rpm文件:命令 rpm2cpio ***.src.rpm | cpio -idv。
解压后,会有对应版本的mysql-8.0..tar.gz。注意,这里有boost版本,编译时可能需要指定boost路径。logcat的源码创建build目录,进入build目录后进行以下操作:
cmake -DWITH_BOOST="/root/lq_workspace/mysql-5.7./boost" ../
然后执行make和make install。注意mysql的安装路径,以便后续编译odbc时使用。例如,我将其放置在/usr/local/mysql/lib中。
接下来,开始编译ODBC:
1. 下载源码,注意编译版本所需的gcc和g++版本。我选择较低版本,非最新版本。
2. 解压后,创建build路径,开始编译。注意以下参数:
cmake ../ -DWITH_UNIXODBC=1 -DDISABLE_GUI=1 -DMYSQL_DIR="/usr/local/mysql/" -DMYSQLCLIENT_STATIC_LINKING=true
编译时出现定义冲突,我将CMakeLists.txt中不需要的部分屏蔽。
cmake时-DWITH_UNIXODBC=1指定使用unixOdbc,默认为iodbc,需在系统上先配置。
-DMYSQL_DIR="/usr/local/mysql/"表示安装libmysqlclient的路径。
-DMYSQLCLIENT_STATIC_LINKING=true连接静态库,默认为动态库。
构建完成后,提示连接libmysqlclient_r.a,低版本区分多线程支持,高版本无需区分。为连接,创建软连接:
ln -s /usr/local/mysql/lib/libmysqlclient.a /usr/local/mysql/lib/libmysqlclient_r.a
准备完成后,执行make生成所需odbc驱动。
配置mysqlodbc后,即可连接mysql。
总结:编译源码时,会遇到各种版本依赖问题,需逐一排查。同时,编译时的编译可选项作用也不容忽视。