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'
}
}
安裝 pymysql
:pip 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__.py
、base.py
、operations.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