SQLSTATE [01000] SQLDriverConnect:0 [unixODBC] [驱动程序管理器]无法打开库“IBMDB2”:找不到文件

Posted

技术标签:

【中文标题】SQLSTATE [01000] SQLDriverConnect:0 [unixODBC] [驱动程序管理器]无法打开库“IBMDB2”:找不到文件【英文标题】:SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC][Driver Manager]Can't open lib 'IBMDB2' : file not found 【发布时间】:2020-11-30 12:41:48 【问题描述】:

我正在尝试通过 ODBC 驱动程序和 db2 安装的驱动程序(IBM 数据服务器驱动程序包 v11.5 )。我在 MAC OS 10.15 CATALINA 上,使用 APACHE,并使用 brew 重新安装了 php

我遇到了这个错误:

SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC][驱动程序管理器]不能 打开库“IBMDB2”:找不到文件

其中IBMDB2指的是我的odbc驱动的DSN,链接到安装到/Applications/dsdriver/lib/libdb2.dylib的驱动

能否请您帮我解决这个“找不到文件”错误(当然文件存在于/Applications/dsdriver/lib/libdb2.dylib 中)?

这是我的 /Library/ODBC/odbc.ini 文件:

[ODBC Data Sources]
IBMDB2 = IBM i Access ODBC Driver

[IBMDB2]
Driver = /Applications/dsdriver/lib/libdb2.dylib

这是我的 /Library/ODBC/odbcinst.ini 文件:

[IBM i Access ODBC Driver]

Description=IBM i Access ODBC Driver

Driver=/Applications/dsdriver/lib/libdb2o.dylib

Setup=/Applications/dsdriver/lib/libdb2o.dylib

这是“env”命令的结果

TMPDIR=/var/folders/8_/l5_n27ds14ndr7tmw0dg97jr0000gn/T/

XPC_FLAGS=0x0

LaunchInstanceID=57ABF727-826C-4D96-9032-BDBB8637FFD6

TERM=xterm-256color

LANG=fr_FR.UTF-8

SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.E2JaUTZ9TW/Listeners

SECURITYSESSIONID=186a6

XPC_SERVICE_NAME=0

TERM_PROGRAM=Apple_Terminal

TERM_PROGRAM_VERSION=433

TERM_SESSION_ID=AA52FB63-601C-4003-8275-6C3E365531DD

SHELL=/bin/zsh

HOME=/Users/yornletard

LOGNAME=yornletard

USER=yornletard

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

SHLVL=1

PWD=/Users/yornletard

OLDPWD=/Users/yornletard

ODBCINI=/Library/ODBC/odbc.ini

ODBCINSTINI=/Library/ODBC/odbcinst.ini

_=/usr/bin/env

【问题讨论】:

请编辑您的问题以提供您已安装的IBM i access 产品的完整版本。您能否确认目标 Db2 数据库位于 AS/400(i 系列)上? 我安装了“IBM 数据服务器驱动程序包 v11.5”。 DB2 数据库完全可以运行,因为我从安装在 ubuntu 操作系统上的同一个 symfony 应用程序访问它。 请回答问题:确认 Db2 数据库正在 AS/400(i 系列)上运行。这意味着,数据库位于 as/400 上。您不能混合使用您的驱动程序(在 V11.5 驱动程序包和 IBM i 访问产品之间)。 我确认 db2 数据库正在 AS/400 上运行 您需要IBM i access 产品中的文件与 unixODBC 一起使用。在 INI 文件中,不要引用来自 IBM 数据服务器驱动程序的文件(因为它们需要 Db2-connect 许可文件才能连接到 AS/400),IBM i access 库不需要这些文件。您的配置无效。 【参考方案1】:

正如 mao 告诉我的,我能够使用“IBM i access”产品从我的 mac os 连接到 db2 数据库。我使用了错误的包驱动程序。感谢他

我下载了 ibm i access 产品: https://www.ibm.com/support/pages/ibm-i-access-client-solutions

然后安装,并使用嵌入脚本自动配置(需要使用 brew 安装 unixODBC)

/Library/IBMiAccess/register_driver

【讨论】:

以上是关于SQLSTATE [01000] SQLDriverConnect:0 [unixODBC] [驱动程序管理器]无法打开库“IBMDB2”:找不到文件的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE [01000] SQLDriverConnect:0 [unixODBC] [驱动程序管理器]无法打开库“IBMDB2”:找不到文件

点燃odbc SQLSTATE [01000]错误如何解决?

连接失败: SQLState:'01000' SQL Server 错误: 53 [Microsoft][ODBC SQL Server Driver][DBNETLIB]Connec

数据源 连接失败

ODBC无法连接SQL SERVER

ODBC数据库连接SQL Server失败?啥原因啊!~~