我无法将MySQL版本8连接到Django 2.2项目

时间:2019-10-09 15:26:20

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

我已经尝试了几乎所有方法,包括搜寻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'

1 个答案:

答案 0 :(得分:3)

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

pip install mysql-connector-python

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

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

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