使用python api IBM_db连接到云上的IBM DB2

2024-06-06 03:18:00 发布

您现在位置:Python中文网/ 问答频道 /正文

您能告诉我如何使用python连接到IBM云上的DB2吗

我已经尝试了以下步骤

  1. 使用pip install ibm_db安装ibm_db
  2. 在IBM云上创建了一个免费的Db2层服务
  3. 生成的服务凭据密钥
  4. 尝试使用从服务凭据密钥提取的凭据详细信息(数据库、主机、端口、用户id和密码)与数据库建立连接
import ibm_db

print("Creating connection.......")

conn_string = "DATABASE=bludb;HOSTNAME=54a2f15b-5c0f-46df-8954-7e38e612c2bd.c1ogj3sd0tgtu0lqde00.databases.appdomain.cloud;PORT=32733;PROTOCOL=TCPIP;UID=<userId>;PWD=<password>;"

conn = ibm_db.connect(conn_string,"","")
if conn:
    print("Connection ...... [SUCCESS]")
else:
    print("Connection ...... [FAILURE]")

我收到以下错误消息:

SQLCODE=-30082n: [IBM][CLI Driver] SQL30082N Security processing failed with reason "17" ("UNSUPPORTED FUNCTION"). SQLSTATE=08001


Tags: installpip数据库dbstring密钥步骤详细信息
3条回答

有一个名为ibm_db的python包,this link或(在第一个包中引用的)this one有帮助吗

似乎您在new Db2 on Cloud lite plan上使用了非标准端口和SSL。当您使用Python驱动程序连接到Db2并使用SSL时,必须添加SECURITY=SSL属性,例如:

conn_string = "DATABASE=bludb;HOSTNAME=yourhostname;PORT=<port>;PROTOCOL=TCPIP;UID=<userId>;PWD=<password>;SECURITY=SSL"

我认为实现这一点的简单方法是使用SQL Magic。这样,您只需在查询之前添加%SQL即可键入SQL语句

首先安装软件包

!pip install sqlalchemy==1.3.9
!pip install ibm_db_sa

那么

%load_ext sql

最后,通过替换用户名、密码、主机名和SSL来运行以下代码。您可以在IBM DB2的凭据下找到这些

%sql ibm_db_sa://my-username:my-password@hostname:port/BLUDB?security=SSL 

现在,您可以使用%SQL before或%%SQL(如果整个单元格将是SQL)运行任何SQL。例如:

%sql SELECT * FROM TABLENAME;

%%sql 
SELECT *
FROM TABLENAME;

相关问题 更多 >