![](/img/trans.png)
[英]How to fix SQLAlchemy connection problem: 'Connection info needed in SQLAlchemy format' when connecting to IBM db2 server hosted on IBM Cloud
[英]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。
此外,请确保您的代码安装了 用于 SQLAlchemy的Db2 模块。 有关依赖项,请参阅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.