无法将 zOS DB2 与 python ibm_db 连接
Posted
技术标签:
【中文标题】无法将 zOS DB2 与 python ibm_db 连接【英文标题】:Not able to connect zOS DB2 with python ibm_db 【发布时间】:2020-01-14 19:59:15 【问题描述】:我无法使用 python ibm db
包连接到远程 zOS DB2
。
连接时出现以下错误:
: [IBM][CLI Driver] SQL30081N A communication error has been detected.
Communication protocol being used: "TCP/IP".
Communication API being use d: "SOCKETS".
Location where the be error was detected: "HOSTNAME".
Communication function detecting the error: "recv".
Protocol specific error code(s): "104", "*", "0". SQLSTATE=08001`
我该如何解决这个错误?
只是添加防火墙是打开的。 Telnet 和 openssl 工作正常。
【问题讨论】:
你看过说明书吗?您尝试做什么来解决错误?这是您收到的实际信息,还是出于隐私目的更换了部分信息? 您是否设置了 SSL 通信并查看了 SQL30081N 的文档以及如何解决该错误的说明? 我已经阅读了同样的手册,但它没有帮助我,这是我得到的实际消息,唯一的变化是主机名是 zOS 服务器的 IP 地址。 我有 zOS DB2 的许可证文件,但我不确定我应该把这个 .lic 文件放在哪里。如果有人对此帮助工作将不胜感激.. 这不是许可证问题;这是一个不同的错误。我必须查看我的工作系统才能告诉您许可证的去向。 【参考方案1】:我不明白你是如何连接的。请尝试以下方法来帮助我们了解您来自哪里:
import ibm_db
ibm_db.connect("DATABASE=;HOSTNAME=;PORT=;PROTOCOL=TCPIP;UID=;PWD=;", "", "")
【讨论】:
【参考方案2】:我可以使用以下连接字符串连接到远程 zOS DB2:
导入 ibm_db
ibm_db.connect("Security=SSL;database=dbname;hostname=hostip;port=port;Protocol=TCPIP;SSLClientKeystoredb=keystoredbfile(文件扩展名.kdb)的路径;SSLClientKeystash=keystashfile(文件扩展名.sth)的路径;uid=用户名;pwd=密码", "", "")
另外,我必须将许可文件“db2consv_zs.lic”放到 ibm_db 的 LICENSE 文件夹中。
【讨论】:
以上是关于无法将 zOS DB2 与 python ibm_db 连接的主要内容,如果未能解决你的问题,请参考以下文章