2010-11-15 1 views
1

Я работаю над сайтом, где мне нужно импортировать данные из удаленной базы данных MS SQL Server в базу данных MySQL на сервере Unix через PHP. Благодаря ответам на this post, я смог получить все и запустить в моей среде разработчиков (Mac OS X 10.6). Теперь, однако, я пытаюсь настроить настройку сервера, то есть CentOS 5.4. У меня есть UnixODBC и FreeTDS установлен и настроен, но когда я пытаюсь соединиться, я получаю следующее сообщение об ошибке:unixODBC error "/usr/lib/libtdsodbc.so.0: wrong 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

Из того, что я смог найти на интернетах, мне кажется, что у меня есть 32 бит unixODBC (или FreeTDS, я не уверен) установлен (libtdsodbc.so.0 символически связан с libtdsodbc.so.0.0.0), и он должен быть 64 бит. Это верно? Если да, то как мне перейти на 64-битную версию? Я разработчик, а не серверный гуру, поэтому это немного за пределами моих знаний о сервере.

Спасибо.

ответ

1

Ваш диагноз верен. Однако нет необходимости в обновлении, так как они могут быть установлены параллельно.

yum install freetds.x86_64 
+0

Когда я запускаю команду выше, я получаю следующее сообщение: «Пакет freetds-0.64-11.el5.centos.x86_64 уже установлен и последняя версия Нечего делать». Есть что-то еще, что мне нужно сделать? – wonder95

4

Изменение ссылки в odbcinst.ini от /usr/lib/libtdsodbc.so.0 к /usr/lib64/libtdsodbc.so.0 устранили эту ошибку для нас в той же конфигурации, как вы описываете.

0

Это исправление не работает для меня. Я также установил freetds.x86_64 (он позволял мне устанавливать, но сообщал о конфликтах), и путь ./usr/lib/libtdsodbc.so.0 был верным. Создал символическую ссылку в любом случае, если бы ее искали.

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

Первоначально я следовал instructions at MediaTemple, но видел другие статьи для Cent OS на 64-битную. Будет отчитываться, если найду что-нибудь, что сработает для меня.

Действительно, удалив FreeTDS, перезапустив Apache, установив 64-разрядный пакет, упомянутый выше, и обновив путь odbcinst.ini, я смог преодолеть вышеуказанную ошибку и фактически удалить ошибки.

Теперь я успешно «разговариваю» с сервером MS SQL, хотя теперь он дает мне общие ошибки. вздох. Во всяком случае, получил большую часть пути. Надеюсь, это поможет кому-то.

Смежные вопросы