對於在Django 中連接MySQL 的驅動,有以下三種:
1) mysqlclient
2) mysql-connector-python
3) pymysql (建議:這個包已經有一年未升級了,本人不建議使用)。
下圖是django 官方文檔對mysql 的驅動的說明:
現對這2個驅動,做下實驗:
環境:
PC1 centos7 mysql8.0.17
PC2 centos7 python3.7.4, pycharm 社區版
一. mysqlclient 的安裝:
(注意:mysql8.0 的密碼加密方式是:caching_sha2_password, 而不是 5.5, 5.6, 5.7 版本的 mysql_native_password。 所以,mysqlclient 暫時只能連接mysql8.0 以下的版本)
A. 針對不同版本的linux, 可以參考: https://pypi.org/project/mysqlclient/ 本文以centos系統為例。
B. 安裝依賴包: yum install python-devel python3-devel mysql-devel
C. 安裝mysqlclient 包: pip install mysqlclient
D. 創建一個Django 的項目。修改其setting 文件:
E. 然后生成遷移文件,並執行遷移程序。
python manage.py makemigrations
python mangage.py migrate
二. mysql-connector-python 的安裝:
這是mysql的官方的驅動包,對於mysql 不同版本的加密方式,不受影響。
A. 安裝包: pip install mysql-connector-python
B. 修改Django 項目中的setting文件中的 ENGINE 的配置:
C. 然后生成遷移文件,並執行遷移程序。
python manage.py makemigrations
python mangage.py migrate