我正在尝试安装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文件如下;
[ProgressOpenEdge]
Description = ODBC for Progress OpenEdge
Driver = /usr/dlc/odbc/lib/pgoe1023.so
;Setup = /usr/dlc/odbc/lib/pgoe1023.so
FileUsage = 1
[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
由于
答案 0 :(得分:2)
您应该检查您的ODBC驱动程序是否可加载:
ldd /usr/dlc/odbc/lib/pgoe1023.so
可能加载程序无法找到依赖项共享对象( so 库),这些对象在您的环境中尚不可用或者在不同版本中可用。
我建议您根据系统添加/usr/dlc/odbc/lib/
或其他路径:
LD_LIBRARY_PATH
/etc/ld.so.conf.d/odbc-pgoe.conf
使用行/usr/dlc/odbc/lib/
并使用ldconfig
刷新(最佳选项)如果问题仍然存在,请报告ldd
命令输出。也许预期的库文件名与您的Linux发行版完全不匹配。
更新 last comment of this post确认ld.so.conf文件是使驱动程序正常工作的解决方案。你应该测试它。
此论坛引用similar situation。也许该解决方案可以解决您的问题。
如果仍然错误,请报告strace isql -3 SUBS2A
的输出。您可能会在写入错误消息之前得到有关错误的库加载,文件访问权限问题或其他任何问题的线索。
答案 1 :(得分:0)
(1)您可以在使用之前检查驱动程序是否正确。
$ ivtestlib /usr/dlc/odbc/lib/pgoe1023.so
(2)加载驱动程序时查看日志 在控制台中,
tail -f /path/to/SysLog_OrOtherName.file
在另一个控制台中,
odbc.sh