如果是操作系统为麒麟,可能预装了freetds和unixODBC,但预装的工具缺少部分动态库文件,会导致dblink使用报错,需要实现卸载预装的freetds和unixODBC,再进行dblink相关配置
检查已安装的rpm包
rpm -qa|grep odbc
rpm -qa|grep freetds
卸载rpm包
rpm -e rpm包名 --nodeps
arm架构cpu:
./configure --host=arm-linux --prefix=/usr/local/unixODBC --build=arm-linux
make && make install
x86架构cpu:
./configure --prefix=/usr/local/unixODBC
make && make install
安装完成后,修改root和dmdba用户的环境变量PATH,增加/usr/local/unixODBC/bin,并root执行chmod -R a+r /usr/local/unixODBC、chmod -R a+x /usr/local/unixODBC
如果odbc是源码安装的,则freetds必须要带--with-unixodbc,不然会缺少odbc驱动
./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC
make && make install
安装完成后,修改root和dmdba用户的环境变量PATH,增加/usr/local/freetds/bin,并root执行chmod -R a+r /usr/local/freetds、chmod -R a+x /usr/local/freetd
vi /usr/local/freetds/etc/freetds.conf
[mssqlserver]
host = sqlserver的ip
port = sqlserver的端口
tds version = 8.0
client charset = GBK
测试连接:
tsql -S sqlserverip -U sqlserver用户名
vi /usr/local/unixODBC/etc/odbcinst.ini
[FreeTDS]
description=ODBC of FreeTDS for MS SQL 2012
driver=/usr/local/freetds/lib/libtdsodbc.so
vi /usr/local/unixODBC/etc/odbc.ini
[mssql]
driver = /usr/local/freetds/lib/libtdsodbc.so
servername = freetds.conf中中括号里的名字
port = sqlserver端口
user = sqlserver用户名
password = sqlserver密码
database = 默认要连接的sqlserver数据库
测试连接
isql -v odbc.ini中中括号里的名字 sqlserver用户名 sqlserver密码
SQL> create link dm_sqlserver connect 'ODBC' with "sqlserver用户名" identified by "sqlserver密码" using 'odbc名';
文章
阅读量
获赞