2010-11-15 60 views
1

Je travaille sur un site où j'ai besoin d'importer des données d'une base de données MS SQL Server distante dans une base de données MySQL sur un serveur Unix via PHP. Grâce aux réponses à this post, j'ai pu tout faire fonctionner sur mon environnement de développement (Mac OS X 10.6). Maintenant, cependant, j'essaye de configurer mon environnement de serveur, qui est CentOS 5.4. Je unixODBC et FreeTDS installés et configurés, mais quand je tente de me connecter, je reçois l'erreur suivante:unixODBC erreur "/usr/lib/libtdsodbc.so.0: faux ELF class: ELFCLASS32"

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

D'après ce que je suis en mesure de trouver sur les internets, il semble que j'ai 32 bit unixODBC (ou FreeTDS, je ne suis pas sûr) installé (libtdsodbc.so.0 est symlinked à libtdsodbc.so.0.0.0) et il doit être 64 bits. Est-ce exact? Si oui, comment puis-je passer à la version 64 bits? Je suis un développeur, pas un gourou du serveur, donc c'est un peu en dehors de ma connaissance du serveur.

Merci.

Répondre

1

Votre diagnostic est correct. Cependant, il n'y a pas besoin de mise à niveau car les deux peuvent être installés en parallèle.

yum install freetds.x86_64 
+0

Lorsque j'exécute la commande ci-dessus, je reçois le message suivant: "Package freetds-0.64-11.el5.centos.x86_64 déjà installé et la dernière version Rien à faire." Y a-t-il autre chose que je dois faire? – wonder95

4

Changer la référence en odbcinst.ini /usr/lib/libtdsodbc.so.0-/usr/lib64/libtdsodbc.so.0 fixe cette erreur pour nous dans la même configuration que vous décrivez.

0

Cette correction n'a pas fonctionné pour moi. J'ai aussi installé freetds.x86_64 (il m'a permis d'installer mais a signalé des conflits) et le chemin ./usr/lib/libtdsodbc.so.0 était correct. Créer un lien symbolique de toute façon au cas où les internes seraient à la recherche.

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

Au départ, je le suivi instructions at MediaTemple, mais ont vu d'autres articles pour OS Cent sur 64 bits. Je rapporterai si je trouve quelque chose qui fonctionne pour moi.

En effet, en supprimant FreeTDS, en redémarrant Apache, en installant le paquet 64 bits mentionné ci-dessus et en mettant à jour le chemin odbcinst.ini, j'ai pu contourner l'erreur ci-dessus, et en fait, supprimer les erreurs. Je réussis maintenant à "parler" au serveur MS SQL, bien qu'il me donne maintenant des erreurs génériques. soupir. Quoi qu'il en soit, nous avons eu la plupart du temps là-bas. J'espère que cela aide quelqu'un.