尝试让SQL与Jupyter Notebook连接时遇MetaData初始化错误求助
问题解决:Jupyter Notebook连接MySQL报错
MetaData.__init__() got an unexpected keyword argument 'bind' 问题描述
在Jupyter Notebook中使用%sql魔法命令尝试连接MySQL数据库,执行语句:
%sql mysql+pymysql://root:Fena.3250@localhost:3306/united_nations
出现错误:
MetaData.init() got an unexpected keyword argument 'bind'
同时提示需要SQLAlchemy格式的连接信息,现有连接为空,目标是成功建立数据库连接。
报错原因
这个错误是SQLAlchemy版本与ipython-sql版本不兼容导致的:
- SQLAlchemy 2.0及以上版本移除了
MetaData类的bind参数 - 旧版本的ipython-sql仍在调用这个已被移除的参数,从而触发报错
解决步骤
方案1:降低SQLAlchemy版本到1.x兼容版
在终端执行以下命令:
pip install sqlalchemy==1.4.49
(版本号可按需选择1.x系列的稳定版本)
方案2:升级ipython-sql到最新兼容版本
在终端执行以下命令:
pip install --upgrade ipython-sql
验证连接
重新启动Jupyter Notebook后,再次执行连接命令:
%sql mysql+pymysql://root:Fena.3250@localhost:3306/united_nations
若返回连接成功的提示,说明问题已解决。
内容的提问来源于stack exchange,提问作者fenadis
相关产品推荐
相关产品推荐

