想必你看到这个错误的时候你是在python中尝试用sqlalchemy连接DB2数据库,那就没错了,你看我这个帖子就能解决问题。
错误如下:
解决方案如下:
一、想要在python中使用sqlalchemy操作DB2,除了需要安装sqlchemy,还需要安装如下两个包:(先别急着操作,看完我一二三所有步骤之后再去操作,不然你会吃亏)
1、 ibm-db
pip install ibm-db(此包安装可能会卡顿一会儿,被crtl+c了,等一会它就自动安装好了)
2、ibm_db_sa
pip install ibm_db_sa
二、版本警告
sqlalchemy这玩意儿很怪,我最后直接pip install sqlchemy, 没有指定版本,所以一直就报题目中的错,然后我更新了下版本,果然没做任何代码改变就连上了。所以我给出我这三个包的版本组合情况:
SQLAlchemy==1.3.23
ibm-db==3.1.4
ibm-db-sa==0.3.9
三、连接字符串
你可能以为你连接字符串写错了吧,是不是一直在疯狂地找看正确的连接字符串怎么写,我告诉你,你十有八九写的是对的,因为db2和其它mysql一样,都遵循SQLAlchemy的连接字符串规范。连接代码如下:
from sqlalchemy import create_engine
connection_str = "db2+ibm_db://{}:{}@{}:{}/{};".format(config.database.user, config.database.pwd,config.database.host, config.database.port, config.database.db)
self.engine = create_engine(connection_str)
总结
可以大言不惭的说,估计90%的可能性已经解决了你的问题,网上对于这个问题,可能没找到比我更好的解决方案了吧。哈哈哈,是的,以为我也各种搜过了,就是没有,所以本人提供第一个解决贴,相信此贴肯定会爆火,大家点赞!