簡體   English   中英

與 IBM Cloud 上的 Db2 的 SQLAlchemy 連接錯誤

[英]SQLAlchemy connection error with Db2 on IBM Cloud

我一直在嘗試使用提供的憑據連接到托管在 IBM 雲上的 IBM DB2 服務器。 我按照說明進行操作,但收到以下錯誤:

SQLAlchemy 格式所需的連接信息,例如:postgresql://username:password@hostname/dbname 或現有連接:dict_keys([]) 無法加載插件:sqlalchemy.dialects:ibm_db_sa SQLAlchemy 格式所需的連接信息,例如: postgresql://username:password@hostname/dbname 或現有連接:dict_keys([])

這是我使用的代碼:

# Remember the connection string is of the format:
# %sql ibm_db_sa://my-username:my-password@my-hostname:my-port/my-db-name
# Enter the connection string for your Db2 on Cloud database instance below
# i.e. copy after db2:// from the URI string in Service Credentials of your Db2 instance. Remove             the double quotes at the end.
%sql ibm_db_sa://user:password@dashdb-txn-sbox-yp-dal09-04.services.dal.bluemix.net:50000/BLUDB

如果您能幫助我解決此錯誤,我將不勝感激。

查看關於將無服務器和 Cloud Foundry 結合起來進行數據檢索和分析的 IBM Cloud 解決方案教程。 它使用 Db2, 后端是用 Python 和 SQLAlchemy 編寫的 相關部分從第 78 行開始

if dbInfo['port']==50001:
    # if we are on the SSL port, add additional parameter for the driver
    app.config['SQLALCHEMY_DATABASE_URI']=dbInfo['uri']+"Security=SSL;"
else:
    app.config['SQLALCHEMY_DATABASE_URI']=dbInfo['uri']

該代碼從 Cloud Foundry 環境中的憑據變量讀取 URI。 如果端口是 50001,則它使用 SSL/TLS 來加密連接,您需要將Security=SSL添加到該 URI。

此外,請確保您的代碼安裝了 用於 SQLAlchemyDb2 模塊 有關依賴項,請參閱requirements.txt

你可以試試這個:

!pip install --upgrade ibm_db
!pip install --upgrade ibm_db_sa
!pip install --upgrade SQLAlchemy

import ibm_db
import ibm_db_sa
import sqlalchemy

%load_ext sql

進而:

%sql ibm_db_sa://user:password@dashdb-txn-sbox-yp-dal09-04.services.dal.bluemix.net:50000/BLUDB

我有類似的問題,由於問題的時間,我期待我的回答可以幫助現在有同樣問題的其他人......

在運行 SQL pip install --upgrade 'SQLAlchemy<1.4' 之前嘗試安裝 SQLAchemy 1.4 版

請務必按照以下方式安裝 ibm_db(它可能會有所幫助)!pip install --force-reinstall ibm_db ibm_db_sa

!pip 卸載 sqlalchemy==1.4 -y && pip install sqlalchemy==1.3.24

%load_ext sql

在運行查詢之前使用它,您的查詢將起作用。

暫無
暫無

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

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