Django3.7使用MySQL8.x注意事项
需安装mysqlclient
- 先在终端输入“python” 查看版本
- 再去对找对应的版本手动安装:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
- 下载后对应的版本执行安装:
pip install mysqlclient-1.4.4-cp37-cp37m-win_amd64.whl
报错 2059
- 在PyCharm下用Django3.7连接MySQL8时,无法数据迁移,报错2059
- 原因:因为MySQL 的加密方式改变了
- 解决:修改加密方式
- select user,plugin from user where user=‘root’
- alter user ‘root’@’%’ identified with mysql_native_password by ‘123456’;
参考:
https://www.cnblogs.com/zoneofmine/p/10801192.html
连接设置
jdbc:mysql://localhost:3306/axfdb?serverTimezone=UCT
要在对应的setting.py 文件中设置数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'axfdb',
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': 3306,
}
}
报错 1045
- 如果报错1045,就是上面密码没写对,记得把上面的密码“123456”写成你的Mysql数据的密码
使用pymysql连接数据库
另外一种解决办法是用pymysql连接数据库Mysql
-
安装: pip install pymysql
-
在 _init_.py (setting.py同级)中设置
import pymysql pymysql.install_as_MySQLdb()
-
在C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py把下面的内容注释掉
if version < (1, 3, 3): raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
参考: https://blog.youkuaiyun.com/q1694222672/article/details/82352076