面临 GSKit 错误:17"。从 Python 连接到 IDB DB2 时 SQLSTATE=42724 SQLCODE=-1109 错误

问题描述 投票:0回答:1

我正在尝试使用 ibm_db api 从 Python 程序连接 DB2 数据库。但我遇到了以下问题...

连接失败:[IBM][CLI 驱动程序] SQL1109N 该命令未处理,因为数据库管理器无法加载以下 DLL:“GSKit 错误:17”。 SQLSTATE=42724 SQLCODE=-1109

下面是我的代码...

import os
os.add_dll_directory(r'C:\Users\x\AppData\Roaming\Python\Python313\site-packages\clidriver\bin')
import ibm_db
import ibm_db_sa
conn_str = (
    "DATABASE=x;"
    "HOSTNAME=x;"
    "PORT=50001;"
    "PROTOCOL=TCPIP;"
    "UID=x;"
    "PWD=x;"
    "SECURITY=SSL;"
    "SSLServerCertificate=C:\\cert\\db2cert\\xprdb2watom1_cacerts"
)

try:
    conn = ibm_db.connect(conn_str, "", "")
    print("Connection successful!")
except Exception as e:
    print(f"Connection failed: {e}")
python python-3.x db2
1个回答
0
投票

根据评论,这是旧版 Db2-LUW 服务器版本中的一个已知缺陷,随后已修复。

换句话说,这不是客户端问题,也不是 python ibm_db 问题,而是可以修复的服务器端问题。

IBM 参考号是 IT34883,适用于 Db2-LUW 版本 11.1 服务器,该缺陷已由修复包 6(2021 年 3 月发布)或更高版本修复。如果您的 Db2 服务器版本低于版本 11.1(即版本 10.x 或版本 9.x),那么您可能会运气不佳。

参考这里

请注意,Db2-LUW 版本 11.1 的最终修订包是 2022 年 4 月发布的 mod 4 修订包 7,因此,如果您的 DBA 将应用服务器修订包,那么明智的做法是仅应用修订包 7(即 11.1.4.7)。

如果您的 Db2 服务器版本是 11.5 或 12.1,那么您需要在发生错误时检查 Db2-LUW 诊断文件以获取其他信息。如果您购买了支持产品,您可能需要向 IBM 开具故障单。或者服务器端诊断中的附加信息也可以建议不同的方法。

© www.soinside.com 2019 - 2024. All rights reserved.