使用 python api ibm_db 连接到 IBM DB2 on Cloud
Connect to IBM DB2 on Cloud using python api ibm_db
能否告诉我如何使用 python 连接到 IBM Cloud 上的 DB2?
我已经尝试了以下步骤。
- 使用
pip install ibm_db
安装 ibm_db
- 在 IBM 云上创建了免费层 Db2 服务
- 生成的服务凭据密钥
- 正在尝试使用从服务凭据密钥中提取的凭据详细信息(数据库、主机、端口、用户 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
有一个名为 ibm_db
的 python 包,this link or (cited in the first one) 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 之前使用 %sql 或 %%sql 如果整个单元格将成为 SQL。示例:
%sql SELECT * FROM TABLENAME;
或
%%sql
SELECT *
FROM TABLENAME;
能否告诉我如何使用 python 连接到 IBM Cloud 上的 DB2?
我已经尝试了以下步骤。
- 使用
pip install ibm_db
安装 ibm_db
- 在 IBM 云上创建了免费层 Db2 服务
- 生成的服务凭据密钥
- 正在尝试使用从服务凭据密钥中提取的凭据详细信息(数据库、主机、端口、用户 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
有一个名为 ibm_db
的 python 包,this link or (cited in the first one) 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 之前使用 %sql 或 %%sql 如果整个单元格将成为 SQL。示例:
%sql SELECT * FROM TABLENAME;
或
%%sql
SELECT *
FROM TABLENAME;