在Ubuntu上的freetds-dev - MSSQL中缺少libtdsodbc.so

时间:2012-08-20 03:13:33

标签: sql-server tsql ubuntu odbc freetds

我正在尝试通过ODBC让MSSQL在Ubuntu 12.04上运行,我按照这些步骤进行了这样的操作:

http://jamesrossiter.wordpress.com/2011/03/08/connecting-to-microsoft-sql-server-using-odbc-from-ubuntu-server/

但是,这省略了odbcinst.ini中指出的这两个文件:

Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so

所以,我google了一下,发现了这个:

http://ubuntuforums.org/showthread.php?t=433435&page=2

所以我按照这些说明将libtdsodbc.so放在/ usr / lib / odbc /中,但我仍然收到此错误:

Can't open lib '/usr/lib/odbc/libtdsodbc.so' : file not found, SQL state 01000 in SQLConnect

但是...

root@ubuntu:/usr/lib/odbc# ls -la
total 552
drwxr-xr-x  2 root root   4096 Aug 19 20:12 .
drwxr-xr-x 62 root root  12288 Aug 19 19:41 ..
-rwxrwxr-x  1 root root 270608 Aug 19 20:00 libtdsodbc.so

我在该文件上尝试了chmod 775,它解释了权限。仍然没有运气。

有什么想法吗?我很难过。真的很想在我的Linux机器上运行它。

编辑:我正在使用Ubuntu 64位。我打赌这是问题所在。希望有所帮助...

EDIT2:我尝试从这里手动获取64位软件包:

http://www.ubuntuupdates.org/package/core/precise/main/base/tdsodbc

然后我看到有一个名为this的文件:

/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Woo,也许是64位版本,对吧?

所以我指出了odbcinst.ini,它没有用。

2 个答案:

答案 0 :(得分:19)

sudo apt-get install freetds-dev

sudo apt-get install tdsodbc

现在用于32位查看:

/usr/lib/i386-linux-gnu/odbc/libtdsodbc.so

或64位:

/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

答案 1 :(得分:1)

我最终在这个listserv帖子的帮助下解决了它:

http://mailman.unixodbc.org/pipermail/unixodbc-support/2008-November/001842.html

除了:

Driver = TDS

应该是:

Driver = FreeTDS

我必须手动查找的那个奇怪的64位驱动程序也是相关的,忽略freetds.conf是可行的方法。

有趣的东西。