Не удалось загрузить указанный драйвер 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.из 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.Обновление: В последний комментарий в этом посте подтверждает, что ЛД.так.файл conf это решение, чтобы заставить водителя работать. Вы должны это проверить.
Этот форум относится каналогичной ситуации . Может быть, решение исправит вашу проблему.
Если все еще неправильно, пожалуйста, сообщите о выходе
strace isql -3 SUBS2A
. Вы, вероятно, получите ключ к разгадке того, что неправильно, как неудачная загрузка библиотеки, проблема доступа к файлам или что-то еще, непосредственно перед тем, как сообщение об ошибке будет написано.