Microsoft ODBC Driver 11 for SQL Server on Ubuntu
来源:互联网 发布:mac安装hexo 编辑:程序博客网 时间:2024/05/03 13:57
在linux有时候程序也需要连接windows服务器下的MS Sql-server数据库服务器,这个时候要需要使用odbc的驱动了.我目前知道有两种现有的方式(不包括自己动手写驱动的).第一种就是使用
unixODBC+FreeTDS 这种使用方法也挺多的,我没有使用过,不清楚.第二种方式就是unixODBC+Microsoft® ODBC Driver 11 for SQL Server® - RedHat Linux 注意不需要使用Microsoft® ODBC Driver 11 for SQL Server® - SUSE Linux ,因为后面这个驱动版本使用的libssl是0.9.8版本的,在ubuntu14.04上面,默认安装的是libssl1.0.0版本.所以最好使用unixODBC+Microsoft® ODBC Driver 11 for SQL Server® - RedHat Linux.可能大家有一个担心就是,用在RedHat 上面的包,在ubuntu14.04上面能不能行,我告诉你,可以,只需要注意一点点就可以了.所以只需要从微软下载RedHat6\msodbcsql-11.0.2270.0.tar.gz这个版本就可以了,注意下面的说明
Microsoft SQL Server 2008, 2008 R2, SQL Server 2012, SQL Server 2014 and Windows Azure SQL Database. Microsoft ODBC Driver 11 for SQL Server also comes with powerful tools - sqlcmd and bcp.
知道可以连接那些数据库,还是要注意的.如果使用的是Microsoft SQL Server 2005,那么你就要试一下了,我没有试验过是不是可以成功.下载页面在这里:
https://www.microsoft.com/en-us/download/details.aspx?id=36437
看上面的说明,需要的库包括如下:
glibc libgcc libstdc++ krb5-libs openssl libuuid
下载以后,解压
tar xvzf msodbcsql-11.0.2270.0.tar.gz.
执行
./build_dm.sh --help会失败,这是因为shell是为redhat设计的,所以在ubuntu下可以这么干,用vim修改这个build_dm.sh,第一行
#!/bin/sh修改成
#!/bin/bash
然后执行就可以了.这个YES以后,看提示,就明白,已经安装好了 unixODBC.
然后就可以安装Microsoft® ODBC Driver 11 for SQL Server®了,用vim修改这个install.sh的第一行,以上面一样.然后执行命令如下:
./install.sh verify
发现出了问题如下:
./install.sh: line 233: rpm: command not foundChecking for 64 bit Linux compatible OS ..................................... OKChecking required libs are installed ................................. NOT FOUNDunixODBC utilities (odbc_config and odbcinst) installed ............ NOT CHECKEDunixODBC Driver Manager version 2.3.0 installed .................... NOT CHECKEDunixODBC Driver Manager configuration correct ...................... NOT CHECKEDMicrosoft ODBC Driver 11 for SQL Server already installed .......... NOT CHECKEDMicrosoft ODBC Driver 11 for SQL Server files copied ........................ OKSymbolic links for bcp and sqlcmd created ................................... OKMicrosoft ODBC Driver 11 for SQL Server registered ................... INSTALLED由于这个driver是给Red Hat 用的,debian下的一些依赖库就不能被侦测到。需要做一些符号链接来让它找到依赖库的位置
查看缺少的依赖库然后进入 lib64目录下,看一下
ldd lib64/libmsodbcsql-11.0.so.2270.0 | grep not会发现如下的问题:
libcrypto.so.10 => not foundlibssl.so.10 => not found这个时候到目录下,建立符号链接
cd /usr/lib/x86_64-linux-gnusudo apt-get install libssl-devsudo ln -s libssl.so.1.0.0 libssl.so.10sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10
然后再执行
ldd lib64/libmsodbcsql-11.0.so.2270.0 | grep not就会发现没有问题了.这个时候还是会出现如下问题,
<pre name="code" class="cpp">./install.sh: line 233: rpm: command not foundChecking for 64 bit Linux compatible OS ..................................... OKChecking required libs are installed ................................. NOT FOUNDunixODBC utilities (odbc_config and odbcinst) installed ............ NOT CHECKEDunixODBC Driver Manager version 2.3.0 installed .................... NOT CHECKEDunixODBC Driver Manager configuration correct ...................... NOT CHECKEDMicrosoft ODBC Driver 11 for SQL Server already installed .......... NOT CHECKEDMicrosoft ODBC Driver 11 for SQL Server files copied ........................ OKSymbolic links for bcp and sqlcmd created ................................... OKMicrosoft ODBC Driver 11 for SQL Server registered ................... INSTALLED怎么办?不办了,强制装:
sudo ./install.sh install --force显示如下:
/install.sh: line 233: rpm: command not foundChecking for 64 bit Linux compatible OS ..................................... OKChecking required libs are installed ................................. NOT FOUNDunixODBC utilities (odbc_config and odbcinst) installed ............ NOT CHECKEDunixODBC Driver Manager version 2.3.0 installed .................... NOT CHECKEDunixODBC Driver Manager configuration correct ...................... NOT CHECKEDMicrosoft ODBC Driver 11 for SQL Server already installed .......... NOT CHECKEDMicrosoft ODBC Driver 11 for SQL Server files copied ........................ OKSymbolic links for bcp and sqlcmd created ................................... OKMicrosoft ODBC Driver 11 for SQL Server registered ................... INSTALLED看起来问题很大,其实用起来根本没有问题.
注意的是,不要用 tsql来测试,因为它会用kerbose认证,而默认kerbos好像启动不了,回头我要看一下这个方面的问题.用sqlcmd来测试是不是安装成功.看起来是可以的
用以下命令
sqlcmd -U username -S ip,port
这个时候应该可以连接成功,然后输入密码,就可以登录和查询了,详细命令,去看一下微软的说明吧.至于 为什么不支持kerbose,我也没有搞清楚,今天太晚了,下班闪人了.
- Microsoft ODBC Driver 11 for SQL Server on Ubuntu
- Ubuntu14.04LTS安装 Microsoft® ODBC Driver 11 for SQL Server® - RedHat Linux
- ubuntu下使用unixODBC+ODBC Driver 11 for SQL Server 连接SQL Server
- [Microsoft][ODBC SQL Server Driver]语法错误或违反访问规则
- [Microsoft][ODBC SQL Server Driver]无效的描述符索
- [Microsoft][ODBC SQL Server Driver]无效的描述符索引
- Microsoft JDBC Driver 4.0 for SQL Server
- Microsoft JDBC Driver 4.0 for SQL Server
- microsoft JDBC Driver for SQL Server
- Microsoft SQL Server Driver for PHP
- [FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]违反限制数据类型属性
- SQLserver2000〔Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝
- [microsoft][odbc sql server driver][ dbnetlib]未找到指定的sql server
- [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝
- [Microsoft][ODBC SQL Server Driver][SQL Server]在关键字 'user' 附近有语法错误。
- [Microsoft][ODBC SQL Server Driver][SQL Server]未能准备语句 SQLSTATE = 37000
- [Microsoft][ODBC SQL Server Driver][SQL Server]在 sys.servers 中找不到服务器
- SQLserver2000〔Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝
- matlab和C/C++混合编程--Mex
- 线性代数导论20——克莱姆法则、逆矩阵、体积
- 冒泡排序
- leetcode 第136题 Single Number
- 二进制转十进制
- Microsoft ODBC Driver 11 for SQL Server on Ubuntu
- 扬帆启航,现在开始我们仙剑demo制作之旅
- android activity 隐藏输入法
- ZooKeeper典型应用场景一览
- Debug过程鼠标悬停在复杂结构体显示相应参数
- Devour Magic 线段树
- django post出现403的解决办法 据说,从django1.x开始,加入了CSRF保护。
- web应用中的调度——简介
- 《设计模式》读书笔记_A