You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook数据库连接失败求助:MetaData初始化报错

解决Jupyter Notebook中%sql连接MySQL报错:MetaData.init() got an unexpected keyword argument 'bind'

问题重现

执行魔法命令:

%sql mysql+pymysql://root:botsebontle22@localhost:3306/united_nations

报错信息:

MetaData.init() got an unexpected keyword argument 'bind'
Connection info needed in SQLAlchemy format, example:
postgresql://username:password@hostname/dbname
or an existing connection: dict_keys([])

原因分析

这个错误是SQLAlchemy版本兼容性问题:SQLAlchemy 2.0+ 移除了MetaData类的bind参数,但你当前使用的ipython-sql(即%sql魔法命令依赖的包)版本较旧,仍在调用这个已被移除的参数。

解决方案

以下三种方法任选其一:

  1. 降低SQLAlchemy版本到1.4.x
    在终端/命令行执行:
pip install sqlalchemy==1.4.49

该版本是1.4系列稳定版,与旧版ipython-sql完全兼容。

  1. 升级ipython-sql到最新版本
    新版本的ipython-sql已适配SQLAlchemy 2.0+,执行:
pip install --upgrade ipython-sql

升级后重新尝试原连接命令即可。

  1. 手动创建SQLAlchemy连接再传入%sql
    若不想调整包版本,可手动建立连接后传入魔法命令:
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://root:botsebontle22@localhost:3306/united_nations")
%sql engine

此方法可绕开ipython-sql自动创建连接时的参数问题。

验证方式

完成上述操作后,运行测试查询%sql SELECT 1;,若能正常返回结果则说明问题已解决。

内容的提问来源于stack exchange,提问作者Bontle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:47:33