繁体   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