Django 3.0にmysql 8.0を接続し、pymysqlを使用せずにMysqlclientをアップグレードできます.

1303 ワード

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 3.0でPymsqlをインポート中にエラーを報告し、Mysqlclientバージョンの問題を提示しました.djangoは私达がMYSQLの情景を使うことを选ぶ时、実际に自动的に呼び出すのはMySQLdbで、Pymysqlはあってもなくてもいいので、私は直接pip installの最新版のMySQLdb、バージョン番号は1.4.6で、Pymysqlを使っていないで、settingsの中で自分でMySQLdbを导入する情况の下で、顺调に私のMySQLに接続します.
私のローカルのインストールはMySQL 8です.0,Djangoの中のORM操作を練習するために用いられ、問題は発見されなかった.私はまだMysql 5.6 5.7バージョンをテストしたことがありません.推定しても問題ありません(注:djangoはMysql 5.6以下のバージョンをサポートしていません)
古い方法でOUTした可能性があるようだ.
皆さんの参考にして、もしバージョンの互換性の問題があるならば、また本帖の下で伝言を残して、みんなに分かち合うように苦労します.
補足:
django3.0公式ドキュメントによると、3.0にはmysqlclient 1.3.13以降のサポートが必要であり、mysqlclientは推奨データベースドライバである.
mysqlclientに加えて、djangoはdev.mysqlで使用できるConnector/Pythonをmysqlのデータベースドライバとして使用することもできます.comダウンロードこのドライバは、MySQLクライアントライブラリまたは標準ライブラリ以外のPythonモジュールをサポートする必要がない、Oracleが提供する純粋なpythonドライバです.
mysqlclientもConnector/Pythonもスレッドセキュリティと接続プールの特性をサポートしています.