Linux 无法加载ODBC库指定的驱动程序

Linux 无法加载ODBC库指定的驱动程序,linux,odbc,drivers,openedge,progress-db,Linux,Odbc,Drivers,Openedge,Progress Db,我正在尝试安装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

我正在尝试安装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 odbc.ini 我已经确保通过ldd正确加载所有依赖项

更新

输出:strace isql-v

输出:strace isql-3 SUS2A

输出:/tmp/odbctrace.out


谢谢

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

ldd /usr/dlc/odbc/lib/pgoe1023.so
加载程序可能无法找到作为共享对象(so库)的依赖项,这些对象在您的环境中尚不可用或在不同版本中不可用

我建议您添加
/usr/dlc/odbc/lib/
,或者根据您的系统添加其他路径:

  • 在环境变量
    LD\u LIBRARY\u PATH中
  • 为linux加载器添加一个特定的文件,例如
    /etc/ld.so.conf.d/odbc pgoe.conf
    /usr/dlc/odbc/lib/
    ,并使用
    ldconfig
    刷新(最佳选项)
如果问题仍然存在,请报告
ldd
命令输出。可能预期的库文件名与Linux发行版不完全匹配

更新: 确认ld.so.conf文件是使驱动程序工作的解决方案。你应该测试一下

这个论坛指的是一个论坛。也许这个解决方案会解决你的问题

如果仍然错误,请报告strace isql-3 SUS2A的输出。在写入错误消息之前,您可能会发现错误的线索,例如库加载失败、文件访问权限问题或其他任何问题。

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

$ ivtestlib /usr/dlc/odbc/lib/pgoe1023.so
(2) 加载驱动程序时查看日志 在控制台中

tail -f /path/to/SysLog_OrOtherName.file
在另一个控制台中

odbc.sh

不要介意。我患了脑痉挛。你在特定的TCP端口上测试过网络连接吗?例如,对于nc 192.168.1.2 4000,请检查驱动程序与系统架构和服务器的兼容性问题。你应该链接到我没有链接到它,因为它不再相关,并且问题以与该帖子上的更新无关的另一种方式得到解决。是的,已经完成了,所有内容都加载了。。。抱歉,我将编辑我的问题。您是否使用了我建议的/etc/ld.so.conf.d/方法,或者您在上一个问题中描述的“移动”?您不应该将库从一个位置移动到另一个位置。。。库可以由C代码本身动态加载(在ELF中没有对加载程序的引用)。因此,我建议您使用“ldd”测试ODBC驱动程序安装中的所有库(可能都在/usr/dlc/ODBC/lib中)。我确实把它放在了环境文件中,还运行了导出。我认为你的答案很有帮助,非常感谢,但仍然不是一个解决方案。以下是我的说明:创建一个文件“/etc/ld.so.conf.d/odbc pgoe.conf”,其中一行内容为“/usr/dlc/odbc/lib/”。这是确认的,它应该工作真的很抱歉,我犯了一个错误的命令,以监测。预期会出现“isql-v”错误消息,可能您尚未设置默认驱动程序。请发送“strace isql-3 SUBS2A”的输出和/tmp/odbctrace.out的内容。我的系统没有这个实用程序,我也不知道您所说的系统日志。
tail -f /path/to/SysLog_OrOtherName.file
odbc.sh