[英]How to connect to Informix database using Python Package - ibm_db
[英]Connect to informix with python's ibm_db
我对python很陌生。 我正在尝试使用 python 和 ibm_db.connect() 连接到 informix 服务器。 但是我似乎无法成功,错误消息也无济于事。
使用 java 和 jdbc,我可以使用以下连接 url 成功连接:
jdbc:informix-sqli://10.20.30.40:1234/mydb:INFORMIXSERVER=foo_bar;USER=user;PASSWORD=pass;
我使用 ibm_db 的尝试是:
ibm_db.connect('HOSTNAME=10.20.30.40;PORT=1234;DATABASE=mydb;PROTOCOL=ONSOCTCP;UID=user;PASSWORD=pass;', '', '')
但它给出了错误(异常:[IBM][CLI 驱动程序] SQL0902C 发生系统错误。无法处理后续 SQL 语句。IBM 软件支持原因代码:“”。SQLSTATE=58005)
如果可能的话,我想要一个等效的字符串作为第一个参数
ibm_db.connect('', '', '')
所以我可以连接python。
请检查https://code.google.com/p/ibm-db/issues/detail?id=116&can=1&q=ONSOCTCP ,这可能对您有所帮助。 如果您仍然遇到问题,那么您可以将您的查询发布到https://groups.google.com/forum/#!forum/ibm_db以获得快速响应。
ibm_db 不支持 onsoctcp 协议。
请查看https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.admin.doc/ids_admin_0207.htm ,这可以帮助您配置对数据库的 DDRA (tcpip) 访问。
我在使用 ibm_db 时遇到了同样的问题,现在我使用 jayDeBeApi 通过 python 连接到 Informix。 它需要 java JDBC 驱动程序和应用程序就像一个魅力。
您的 JDBC 连接字符串指向 SQLI Informix 侦听器,但“ibm_db”python 模块使用 DRDA(IBM 数据服务器驱动程序)连接到 Informix 引擎。
Informix 允许 SQLI 和 DRDA 客户端(以及其他像 MongoDB)。 SQLI 是“本机”Informix 协议,支持所有 Informix 服务器功能和数据类型。 DRDA 是其他 IBM 数据库使用的(如 DB2)。 它在您可以使用的类型方面确实有一些限制。
您有两个选择: 配置 Informix 服务器以侦听另一个端口中的 DRDA 连接(基本上,使用“drsoctcp”创建 DBALIASES),如下所述:
https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.admin.doc/ids_admin_0207.htm
或者让服务器保持原样,并使用不同的 Python 模块,一个使用 SQLI 的模块,如“IfxPy”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.