使用 python api ibm_db

时间:2021-07-20 18:56:28

标签: python db2 ibm-cloud

能否告诉我如何使用 python 连接到 IBM Cloud 上的 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 驱动程序] SQL30082N 安全处理失败,原因为“17”(“UNSUPPORTED FUNCTION”)。 SQLSTATE=08001

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

我认为最简单的方法是使用 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;

答案 2 :(得分:0)

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

相关问题