Django 3.0 中连接mysql 8.0,可以不使用pymysql ,升级Mysqlclient即可
python 中,连接mysql一般都推荐用pymysql ,而且在django中,网上的教程都是这么连接mysql的.
import pymysql
pymysql.install_as_MySQLdb()
这实际是pymysql模块调用了模块中的一个函数 install_as_MySQLdb(),这个函数的注释是这么说的.
After this function is called, any application that imports MySQLdb or
_mysql will unwittingly actually use pymysql.
大概意思是:
调用此函数后,任何导入MySQLdb或_mysql的应用程序都会在不经意间实际使用pymysql。
既然django 实际调用的是MySQLdb, 最近在使用Django 3.0 中, 导入 MySQLdbl的时候报错,提示Mysqlclient版本问题, 我就安装了最新版的MySQLdb, 版本号是1.4.6, 然后导入MySQLdb成功,顺利连接我的MySQL ,我本地的安装的是MySQL8.0 ,连接成功,用来练习Django中的ORM操作,没有发现问题. 我还没测试过Mysql5.5 5.6 5.7版本.估计也没问题,
看来老方法有 OUT 了的可能性.
发布出来供大家参考, 如果有版本兼容性问题,还劳烦在本帖下留言,供大家分享.