1

PHPを介してリモートMSSQLServerデータベースから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

あなたの診断は正しいです。ただし、2つを並行してインストールできるため、アップグレードする必要はありません。

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 に答える