13

我正在尝试通过 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

所以,我用谷歌搜索了一下,发现了这个:

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

然后我看到有一个文件叫这个:

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

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

所以我将 odbcinst.ini 指向它,但它没有用。

4

2 回答 2

23
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
于 2013-04-12T13:11:57.560 回答
1

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

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

除了:

Driver = TDS

应该:

Driver = FreeTDS

我必须手动找到的那个奇怪的 64 位驱动程序也是相关的,忽略 freetds.conf 是要走的路。

好玩的东西。

于 2012-08-20T04:05:12.813 回答