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