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

运行Python操作MySQL的SQL命令时出现TypeError参数不匹配错误求助

排查TypeError: init() takes 1 positional argument but 2 were given错误的思路

我来帮你梳理下这个错误的常见原因和解决办法:

  • 别直接实例化Connection类,要用工厂函数
    如果你不小心把创建连接的代码写成了 conn = mysql.connector.Connection(...) 而非 mysql.connector.connect(...),在部分旧版本驱动里,Connection类的构造函数不支持直接传入这些关键字参数,就会触发这个参数错误。赶紧改回 mysql.connector.connect(host='localhost', user='root', password='root', database='nlidb') 试试。

  • 检查游标创建时的参数
    看看你创建游标那行代码 cur = conn.cursor(),是不是不小心多传了参数?比如写成 cur = conn.cursor(conn) 这种,游标构造函数只需要自身一个位置参数,多传的话就会报错。确保这行代码没有多余参数。

  • 驱动版本可能有问题
    如果你装的是旧版的 mysql-connector 包(不是官方的 mysql-connector-python),API可能不兼容。先卸载旧包,再装官方版:

    pip uninstall mysql-connector
    pip install mysql-connector-python
    
  • SQL执行时的参数传递要规范
    虽然你贴的代码里没写执行语句,但如果后面执行 cur.execute(stmt, args) 时,参数格式错了也可能出问题。比如传单个值的时候,必须写成元组格式 (value,)(注意逗号不能少),不能只传单个值,不然会被当成两个参数传递给execute方法,间接触发类似错误。

另外,记得把你的CREATE TABLE语句补全,你代码里末尾的...要替换成完整的语句结尾,比如加上;或者指定存储引擎之类的,避免语法错误引发其他异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:59:03