能否告诉我如何使用 python 连接到 IBM Cloud 上的 DB2?
我已经尝试了以下步骤。
pip install ibm_db
安装 ibm_dbimport 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
答案 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)