004-django2.2 連接 mysql 遇到的坑

1、mysql 數據庫配置信息

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'restdb',
        'HOST':'127.0.0.1',
        'PORT':3306,
        'USER':'root',
        'PASSWORD':'xxx'
    }
}

安裝 pymysqlpip install pymysql
遷移:python manage.py migrate,遷移時報錯。

2、mysql 連接報錯及解決方法

    import MySQLdb as Database
ModuleNotFoundError: No module named 'MySQLdb'
......
......
 line 17, in <module>
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?

解決辦法:
修改文件:修改 Lib-->site-packages-->django-->db-->backends-->mysql 下的 __init__.pybase.pyoperations.py 文件。
在這裏插入圖片描述

1)在 init.py 中添加

import pymysql
pymysql.install_as_MySQLdb()

2)修改 base.py 文件

繼續遷移時,又報下面錯誤,mysql 版本低了

    raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

修改 base.py 文件:

1)註釋掉 35 和 36 行:
在這裏插入圖片描述
2)或將版本修改成 0.9.3:
在這裏插入圖片描述

3)修改 operations.py 文件

繼續遷移時,又報下面錯誤
在這裏插入圖片描述
修改 operations.py,將 decode 改爲 encode:
在這裏插入圖片描述

4)繼續遷移,成功

參考地址:https://www.cnblogs.com/hanwenlin/p/10677026.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章