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