Ошибка unixODBC "/usr/lib/libtdsodbc.so.0: неправильный класс ELF: ELFCLASS32" - PullRequest
1 голос
/ 15 ноября 2010

Я работаю на сайте, где мне нужно импортировать данные из удаленной базы данных MS SQL Server в базу данных MySQL на сервере Unix через PHP. Благодаря ответам на в этом посте я смог все настроить и запустить в своей среде разработки (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-битную версию? Я разработчик, а не гуру сервера, так что это немного за пределами моего знания сервера.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 08 марта 2011

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

1 голос
/ 15 ноября 2010

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

yum install freetds.x86_64
0 голосов
/ 18 марта 2011

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

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

Первоначально я следовал инструкциям на MediaTemple , но я видел другие статьи о Cent OS на 64-битных. Отзовусь, если найду что-нибудь подходящее для меня.

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

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

...