3

我正在尝试安装 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

谢谢

4

2 回答 2

3

您应该检查您的 ODBC 驱动程序是否可加载:

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

加载器可能无法找到在您的环境中尚不可用或在不同版本中可用的共享对象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. 就在写入错误消息之前,您可能会在那里获得关于错误信息的线索,例如库加载失败、文件访问权限问题或其他问题。

于 2012-05-03T09:57:50.043 回答
0

(1)您可以在使用前检查驱动程序是否正确。

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

(2) 加载驱动程序时观察日志在控制台中,

tail -f /path/to/SysLog_OrOtherName.file

在另一个控制台中,

odbc.sh
于 2012-05-09T13:26:09.737 回答