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

Mic*_*l B 12 t-sql sql-server 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
Run Code Online (Sandbox Code Playgroud)

所以,我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
Run Code Online (Sandbox Code Playgroud)

但...

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
Run Code Online (Sandbox Code Playgroud)

我在该文件上尝试了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
Run Code Online (Sandbox Code Playgroud)

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

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

Mic*_*oka 19

sudo apt-get install freetds-dev
Run Code Online (Sandbox Code Playgroud)

要么

sudo apt-get install tdsodbc
Run Code Online (Sandbox Code Playgroud)

现在为32位看:

/usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Run Code Online (Sandbox Code Playgroud)

或64位:

/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Run Code Online (Sandbox Code Playgroud)


Mic*_*l B 1

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

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

除了:

Driver = TDS
Run Code Online (Sandbox Code Playgroud)

应该:

Driver = FreeTDS
Run Code Online (Sandbox Code Playgroud)

我必须手动查找的那个奇怪的 64 位驱动程序也与此相关,并且忽略 freetds.conf 是正确的方法。

好玩的东西。