簡體   English   中英

使用 python api ibm_db 連接到 IBM DB2 on Cloud

[英]Connect to IBM DB2 on Cloud using python api ibm_db

您能告訴我如何使用 python 連接到 IBM Cloud 上的 DB2 嗎?

我已經嘗試了以下步驟。

  1. 使用pip install 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

似乎您使用的是新的 Db2 on Cloud 精簡版計划,其中包含非標准端口和 SSL。 當您使用 Python 驅動程序連接到 Db2 並使用 SSL 時,您必須添加SECURITY=SSL屬性,例如:

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

有一個名為ibm_db的 python 包, 這個鏈接或(在第一個中引用)這個有幫助嗎?

我認為最簡單的方法是使用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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM