Django 3.0 中链接mysql 8.0,能够不使用pymysql ,升级Mysqlclient便可

python 中,链接mysql通常都推荐用pymysql ,并且在django中,网上的教程都是这么链接mysql的.html

import pymysqlpython

pymysql.install_as_MySQLdb()mysql

这实际是pymysql模块调用了模块中的一个函数 install_as_MySQLdb(),这个函数的注释是这么说的.sql

After this function is called, any application that imports MySQLdb or
_mysql will unwittingly actually use pymysql.

大概意思是:数据库

  调用此函数后,任何导入MySQLdb或_mysql的应用程序都会在不经意间实际使用pymysql。django

最近在使用Django 3.0 中, 导入 Pymsql的时候报错,提示Mysqlclient版本问题,.既然django 在咱们选择使用MYSQL的情景时,实际自动调用的是MySQLdb, Pymysql是无关紧要的,我就直接pip install 了最新版的MySQLdb, 版本号是1.4.6, 在没使用Pymysql, 也不用在settings中本身导入MySQLdb的状况下,顺利链接个人MySQL .安全

我本地的安装的是MySQL8.0 ,用来练习Django中的ORM操做,没有发现问题. 我还没测试过Mysql 5.6 5.7版本.估计也没问题,(注:django不支持Mysql5.6如下的版本)app

看来老方法有 OUT 了的可能性.函数

发布出来供你们参考, 若是有版本兼容性问题,还劳烦在本帖下留言,供你们分享.测试

补充:

django3.0官方文档说,3.0须要mysqlclient 1.3.13或者更高版本的支持,而且mysqlclient是推荐的数据库驱动程序.

除了mysqlclient, django还可使用Connector/Python 做为mysql的数据库驱动程序,这个驱动能够在dev.mysql.com下载. 这个驱动是Oracle提供的纯python驱动, 不须要MySQL客户端库或标准库以外的任何Python模块做为支持.

无论mysqlclient仍是Connector/Python都支持线程安全和链接池特性。

原文出处:https://www.cnblogs.com/worldinmyeyes/p/12093495.html

相关文章
相关标签/搜索