【问题标题】:I can't connect MySQL version 8 to Django 2.2 project我无法将 MySQL 版本 8 连接到 Django 2.2 项目
【发布时间】:2020-02-06 23:42:10
【问题描述】:

我已经尝试了几乎所有方法,包括搜索 StackOverflow 来解决这个问题,但我似乎仍然面临这个问题。我正在尝试以零运气将我的 Django 2.2.6 项目连接到我的 MySQL 版本 8 数据库。

我已更改 settings.py 文件以在数据库字典中包含以下键值对:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'portfoliodb',
        'USER': 'c**********s',
        'PASSWORD': 'XXX',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

打字

python manage.py runserver

返回以下错误:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

我其实有mysqlclient,正在打字

pip install mysqlclient

返回以下内容:

requirement already met (1.4.4)

我也试过了

pip install pymysql

然后将init.py文件编辑成如下代码:

import pymysql

pymysql.install_as_MySQLdb()

同时保持我的数据库变量与上面相同。这样做会产生以下错误:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

我已将 MySQL python 连接器下载并安装到我的系统上。

我尝试将 settings.py 中的空 ALLOWED_HOSTS 变量作为我的本地主机的参数。

MySQL 服务器在 Django 之外运行良好,可以在终端上非常成功地访问。

我将 Databases 变量中的 Engine 替换为:

mysql.connector.django

产生以下错误代码:

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.db.backends.mysql 现在会发生什么?

标签: python mysql django mysql-8.0 django-2.2


【解决方案1】:

我设法在这里回答了我自己的问题,并考虑删除该帖子,但它可能会帮助其他人。我运行了命令

pip install mysql-connector-python

在将 DATABASES 字典中的引擎值更改为:

'ENGINE': 'mysql.connector.django',

MySQL 数据库终于连接到我的 Django 项目

【讨论】:

  • 除此之外我还必须设置'OPTIONS': { 'use_pure': True, }
  • 我做了这一切。仍然说“mysql.connector.django”不是可用的数据库后端
  • 我们在这个解决方案中遇到了同样的问题
猜你喜欢
  • 2018-09-07
  • 1970-01-01
  • 2020-08-03
  • 2021-02-05
  • 2019-05-22
  • 2020-10-31
  • 2013-10-01
  • 2021-06-15
  • 2023-01-16
相关资源
最近更新 更多