ODBC lib Указанный драйвер не может быть загружен

Я пытаюсь установить драйверы ODBC, и я сталкиваюсь с кирпичными стенами.

[root@Crux pkg]# isql -v
[IM002][DataDirect][ODBC lib] Data source name not found and no default driver specified
[ISQL]ERROR: Could not SQLConnect
[root@Crux pkg]# isql -3 SUBS2A
[IM003][DataDirect][ODBC lib] Specified driver could not be loaded
[ISQL]ERROR: Could not SQLConnect

Мои INI-файлы выглядят следующим образом;

odbcinst.ini

[ProgressOpenEdge]
Description = ODBC for Progress OpenEdge
Driver = /usr/dlc/odbc/lib/pgoe1023.so
;Setup = /usr/dlc/odbc/lib/pgoe1023.so
FileUsage = 1

odbc.ini

[SUBS2A]
Driver = ProgressOpenEdge
Description = Fail
DatabaseName = SUBS
PortNumber = 4000
HostName = 192.168.1.2
LogonID = SYSPROGRESS
Password = SYSPROGRESS
APILevel = 1
ConnectFunctions = YYN
CPTimeout = 60
DriverODBCVer = 03.50
FileUsage = 0
SQLLevel = 0
UsageCount = 1
ArraySize = 50
DefaultLongDataBuffLen = 2048
DefaultIsolationLevel = REPEATABLE READ
StaticCursorLongColBuffLen = 4096
[ODBC]
InstallDir = /usr/dlc/odbc
Trace = 0
TraceFile = odbctrace.out
TraceDll = /usr/dlc/odbc/lib/odbctrac.so
UseCursorLib = 0

Я уже убедился, что все зависимости загружаются правильно через ldd.

ОБНОВИТЬ

ВЫХОД: strace isql -v http://pastebin.com/tXFY4vVt

ВЫХОД: strace isql -3 SUBS2A http://pastebin.com/Yu5e54mR

ВЫХОД: /tmp/odbctrace.out http://pastebin.com/0kgvNdWv

Спасибо

2 ответа

Решение

Вы должны проверить, что ваш драйвер ODBC является загружаемым:

ldd /usr/dlc/odbc/lib/pgoe1023.so

Возможно, загрузчик не может найти зависимости как общие объекты (тоесть библиотеки), которые еще не доступны в вашей среде или недоступны в другой версии.

Я рекомендую вам добавить /usr/dlc/odbc/lib/ или, возможно, другие пути в соответствии с вашей системой:

  • либо в переменной среды LD_LIBRARY_PATH
  • либо добавить определенный файл для загрузчика Linux, например /etc/ld.so.conf.d/odbc-pgoe.conf с линией /usr/dlc/odbc/lib/ и обновить с ldconfig (лучший вариант)

Пожалуйста, сообщите ldd вывод команды, если проблема сохраняется. Возможно, ожидаемые имена файлов библиотек точно не соответствуют вашему дистрибутиву Linux.

Обновление: последний комментарий к этому сообщению подтверждает, что файл ld.so.conf является решением для обеспечения работы драйвера. Вы должны проверить это.

Этот форум относится к аналогичной ситуации. Возможно, решение решит вашу проблему.

Если все еще не так, пожалуйста, сообщите результат strace isql -3 SUBS2A, Вы, вероятно, получите подсказку о том, что неправильно, например, неудачная загрузка библиотеки, проблема с правами доступа к файлу или что-то еще, непосредственно перед тем, как будет написано сообщение об ошибке.

(1) Вы можете проверить правильность драйвера перед его использованием.

$ ivtestlib /usr/dlc/odbc/lib/pgoe1023.so

(2) Просмотр журнала при загрузке драйверов в консоли,

tail -f /path/to/SysLog_OrOtherName.file

В другой консоли

odbc.sh
Другие вопросы по тегам