【问题标题】:Django 3.x error: 'mysql.connector.django' isn't an available database backendDjango 3.x 错误:“mysql.connector.django”不是可用的数据库后端
【发布时间】:2023-03-29 01:42:01
【问题描述】:

最近将 Django 项目从 2.x 升级到 3.x,我注意到 mysql.connector.django 后端(来自 mysql-connector-python)不再工作。它使用的最后一个 Django 版本是 2.2.11。它打破了3.0。我正在使用mysql-connector-python==8.0.19

运行manage.py runserver时出现如下错误:

django.core.exceptions.ImproperlyConfigured: 'mysql.connector.django' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'

我知道这不是官方的 Django 后端,但由于我无法控制的原因,我必须在这个项目中使用它。

我 80% 确定这是库的问题,但我只是想看看除了等待更新之外是否有什么可以解决的问题。

更新:

mysql.connector.django 现在适用于 Django 3+。

【问题讨论】:

  • 你用的是哪个版本的python?
  • 我使用的是 Python 3.7。

标签: python mysql django mysql-connector-python


【解决方案1】:

Connector/Python 仍然支持由 Django 3 删除的 Python 2.7。 我们目前正在努力增加对 Django 3 的支持,敬请期待。

【讨论】:

【解决方案2】:

对于Django 3.0Django 3.1,我设法让它与mysql-connector-python 8.0.22 一起工作。看到这个https://dev.mysql.com/doc/relnotes/connector-python/en/news-8-0-22.html

【讨论】:

  • 我不久前尝试了最新版本,它从django.db.backends.mysql.base导入,需要mysqlclientmysql-connector-python 的旧版本没有。我不能在这个特定项目中使用mysqlclient。如有错误请指正。
  • 我正在处理的项目的 pipfile 中没有mysqlclient
  • 就我而言,当我尝试 Django 3.2 和 mysql-connector-python 8.0.25 时,它抱怨我没有安装 mysqlclient。当他们现在导入 django.db.backends.mysql.base: github.com/mysql/mysql-connector-python/commit/…
  • 不能使用Django 3.1
  • 我猜是这样,但在那之后支持下降并不理想。无论如何,我会更新已接受的答案,因为您的答案现在最相关。
猜你喜欢
  • 2019-07-16
  • 2019-04-25
  • 2019-01-30
  • 2013-02-15
  • 2015-12-11
  • 2015-03-17
  • 2016-06-05
  • 2014-08-26
  • 1970-01-01
相关资源
最近更新 更多