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

在CPanel终端执行python manage.py migrate时遇TypeError错误求助

解决TypeError: DatabaseWrapper.display_name() takes 0 positional arguments but 1 was given错误

问题原因

该错误源于mysql-connector-python版本与当前Django版本不兼容。Django较新版本要求DatabaseWrapper.display_name()方法必须接收self参数,但旧版mysql.connector.django驱动中该方法定义未包含此参数,导致参数匹配失败。

解决方案

方案1:升级mysql-connector-python到兼容版本

执行命令更新依赖:

pip install --upgrade mysql-connector-python

升级完成后重新执行迁移:

python manage.py migrate

方案2:替换为官方推荐的MySQL驱动(推荐)

mysqlclient是Django官方推荐的MySQL驱动,兼容性和稳定性更优:

  1. 卸载旧驱动:
pip uninstall mysql-connector-python
  1. 安装mysqlclient:
pip install mysqlclient
  1. 修改settings.py中的数据库引擎配置:
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "my-database-name",
        "HOST": "localhost",
        "PORT": "3306",
        "USER": "my-database-username",
        "PASSWORD": "my-password",
    }
}
  1. 重新执行迁移:
python manage.py migrate

方案3:临时修改驱动源码(不推荐)

若无法升级或替换驱动,可手动修改驱动源码适配参数要求:
找到Python环境下mysql/connector/django/base.py文件,定位display_name方法,修改为:

def display_name(self):
    return "MySQL"

保存后重新执行迁移命令。注意:此修改会在驱动升级时被覆盖,仅作临时应急用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:04:58