1

我正在一个网站上工作,我需要通过 PHP 将远程 MS SQL Server 数据库中的数据导入 Unix 服务器上的 MySQL 数据库。感谢对这篇文章的回答,我能够在我的开发环境(Mac OS X 10.6)上启动并运行所有内容。然而,现在我正在尝试设置我的服务器环境,即 CentOS 5.4。我安装并配置了 unixODBC 和 FreeTDS,但是当我尝试连接时,我收到以下错误:

Connection Failed:[unixODBC][Driver Manager]Can't open lib '/usr/lib/libtdsodbc.so.0' : /usr/lib/libtdsodbc.so.0: wrong ELF class: ELFCLASS32

从我在互联网上找到的信息来看,我似乎安装了 32 位 unixODBC(或 FreeTDS,我不确定)(libtdsodbc.so.0 符号链接到 libtdsodbc.so.0.0.0)和它需要是 64 位的。那是对的吗?如果是这样,我如何升级到 64 位版本?我是开发人员,而不是服务器专家,所以这有点超出我的服务器知识。

谢谢。

4

3 回答 3

4

将 odbcinst.ini 中的引用从更改为/usr/lib/libtdsodbc.so.0/usr/lib64/libtdsodbc.so.0您描述的相同配置为我们修复此错误。

于 2011-03-08T20:43:50.510 回答
1

你的诊断是正确的。但是,无需升级,因为两者可以并行安装。

yum install freetds.x86_64
于 2010-11-15T01:34:22.877 回答
0

这个修复对我不起作用。我也安装freetds.x86_64了(它让我安装但报告了冲突)并且路径./usr/lib/libtdsodbc.so.0是正确的。无论如何都创建了一个符号链接,以防内部人员正在寻找它。

ln -s /usr/lib/libtdsodbc.so.0 /usr/lib64/libtdsodbc.so.0

我最初是按照 MediaTemple 上的说明进行操作的,但在 64 位上看到了 Cent OS 的其他文章。如果我发现任何对我有用的东西,我会报告。

确实,删除 FreeTDS,重新启动 Apache,安装上面提到的 64 位软件包并更新 odbcinst.ini 路径,我能够克服上述错误,实际上,删除错误。

我现在成功地与 MS SQL 服务器“交谈”,尽管它现在给了我一般错误。叹息。无论如何,大部分时间都在那里。希望这可以帮助某人。

于 2011-03-17T22:25:25.447 回答