1、编译安装Unixodbc与Freetds
1.1解压安装包
[dmdba@localhost ODBC_INSTALL]$ tar -xf unixODBC-2.3.7.tar.gz
[dmdba@localhost ODBC_INSTALL]$ tar -xf freetds-1.3.tar.gz
[dmdba@localhost ODBC_INSTALL]$ ll
drwxr-xr-x 10 dmdba dinstall 4096 7月 13 2021 freetds-1.3
-rw-r–r-- 1 root root 3057336 4月 21 10:34 freetds-1.3.tar.gz
drwxr-xr-x 20 dmdba dinstall 4096 8月 10 2018 unixODBC-2.3.7
-rw-r–r-- 1 dmdba dinstall 1669501 4月 20 14:43 unixODBC-2.3.7.tar.gz
1.2编译安装
先编译安装unxiodbc:命令如下过程省略
[dmdba@localhost ODBC_INSTALL]$ cd unixODBC-2.3.7/
[dmdba@localhostunixODBC-2.3.7]$./configure --prefix=/dmsoft/unixODBC_2.3.7
[dmdba@localhost unixODBC-2.3.7]$ make && make install
编译安装freetds:命令如下过程省略
[dmdba@localhost ODBC_INSTALL]$ cd freetds-1.3/
[dmdba@localhost freetds-1.3]$ ./configure --prefix=/dmsoft/freetds-1.3 --with-unixodbc=/dmsoft/unixODBC_2.3.7
[dmdba@localhost freetds-1.3]$ make && make install
注意:需要用参数–with-unixodbc指定unixodbc的安装位置,用来编译odbc相关功能,否者编译安装后没有odbc相关驱动。
1.3配置环境变量
编辑dmdba的环境变量配置文件/home/dmdba/.bash_profile
增加先下面配置:
export FREETDS_HOME=/dmsoft/freetds-1.3
export UNIXODBC_HOME=/dmsoft/unixODBC_2.3.7
export LD_LIBRARY_PATH="
L
D
L
I
B
R
A
R
Y
P
A
T
H
"
:
LD_LIBRARY_PATH":
LDLIBRARYPATH":FREETDS_HOME/lib:$UNIXODBC_HOME/lib
export PATH= P A T H : PATH: PATH:FREETDS_HOME/bin:$UNIXODBC_HOME/bin
2、配置UnixODBC与FreeTDS
2.1配置FreeTDS
1、配置文件准备
vim /dmsoft/freetds-1.3/etc/freetds.conf
增加配置:
[mssqlserver]
host = 192.168.100.128
port = 1433
tds version = 7.0
注意:tds version版本需要配置位7.0否则会报连接错误
2、测试连接数据库
先使用tsql测试连接SQLserver数据库
命令:
tsql -H 192.168.100.128 -p 1433 -U sa -P Dameng@123 -D master
-H:IP地址
-p:数据库端口
-U:用户名
-P:密码
-D:系统数据库名
-S:在freetds.conf中指定要连接的服务器条目
连接后查看master数据库下的TEST1表:
测试通过freetds.conf配置文件连接数据库:tsql -S mssqlserver -U sa -P Dameng@123 -D master
2.2配置UnixODBC
1.准备配置文件
编辑配置文件odbcinst.ini:
vim /dmsoft/unixODBC_2.3.7/etc/odbcinst.ini
配置文件内容:
[FreeTDS] # unixodbc驱动名称
Description=ODBC of FreeTDS for MS SQL 2008 # 简介
Driver=/dmsoft/freetds-1.3/lib/libtdsodbc.so # 驱动所在位置
编辑配置文件odbc.ini:
vim /dmsoft/unixODBC_2.3.7/etc/odbc.ini
配置文件内容:
[TEST]
Driver = /dmsoft/freetds-1.3//lib/libtdsodbc.so
Description = My Second Test DSN
Trace = No
Server = 192.168.100.128
Database = master
Port = 1433
TDS_Version = 7.0
2、测试数据库连接
isql -v TEST sa Dameng@123
Isql登录后查询表TEST1:
3、创建DBLINK
3.1创建DBLINK
登录数据库创建DBLINK
/dmsoft/dmdbms/bin/disql SYSDBA/SYSDBA
SQL>create link “SYSDBA”.“TEST” connect ‘ODBC’ with “sa” identified by “Dameng@123” using ‘TEST’;
3.2拷贝驱动
将UnixODBC与FreeTDS安装目录下的lib目录下的所有驱动包复制到数据库bin目录下
cp -a /dmsoft/freetds-1.3/lib/lib* /dmsoft/dmdbms/bin/
cp -a /dmsoft/unixODBC_2.3.7/lib/lib* /dmsoft/dmdbms/bin/
3.3测试DBLINK
通过DBLINK查询sqlserver的表
/dmsoft/dmdbms/bin/disql SYSDBA/SYSDBA
SQL>select * from TEST1@TEST;
4、FreeTDS版本问题
4.1FreeTDS0.9版本
问题描述:当使用FreeTDS0.9版本连接sqlserver查询数据时导致数据库异常
4.2FreeTDS1.0.3版本问题
问题描述:采用FreeTDS1.0.3版本连接sqlserver查询数据时发现如果sqlserver的数据库名称如果不带有下划线就会报获取对象失败的错误
4.3总结
达梦数据库是2021年8.1.2.18版本需要使用FreeTDS版本1.3的最新版本配置ODBC连接sqlserver,来避免上述两个DBLINK连接查询的问题。