【MySQL】Django3.7使用MySQL8.x注意事项(报错 2059)

10 篇文章 1 订阅

需安装mysqlclient

  1. 先在终端输入“python” 查看版本
  2. 再去对找对应的版本手动安装:
    https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
    在这里插入图片描述
  3. 下载后对应的版本执行安装:
    pip install mysqlclient-1.4.4-cp37-cp37m-win_amd64.whl

报错 2059

  • 在PyCharm下用Django3.7连接MySQL8时,无法数据迁移,报错2059
  • 原因:因为MySQL 的加密方式改变了
  • 解决:修改加密方式
    1. select user,plugin from user where user=‘root’
    2. 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

  1. 安装: pip install pymysql

  2. 在 _init_.py (setting.py同级)中设置

     import pymysql
     pymysql.install_as_MySQLdb()
    
  3. 在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.csdn.net/q1694222672/article/details/82352076

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值