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