[解決済み] MySQLdb, mysqlclient, MySQL connector/Python の違いは何ですか?
質問
Pythonでデータベースの更新をしようとしているのですが、開発環境を整えているときに、以下の3つに出くわしてしまい、めまいがしています。
-
そこには MySQLdb
-
そこには mysqlclient
- そして、その後に mysql コネクタ python
それぞれ、何が違うのか、どこで使うのか?ありがとうございます。
どのように解決するのですか?
MySQLdb は、MySQL データベースの API を実装した C モジュールの薄い Python ラッパーです。
以前は MySQLDb1 バージョンのラッパーがありましたが、現在はレガシーと見なされています。MySQLDb1が進化し始めると MySQLDb2 に進化し、バグフィックスと Python3 のサポートが行われたため、MySQLDb1 がフォークされ、以下がその方法です。 mysqlclient がバグフィックスと Python3 サポート付きで登場しました。まとめると、MySQLDb2 は実稼働にはまだ早い、MySQLDb1 は古いドライバ、そしてコミュニティがバグフィックスと Python3 サポートを行った mysqlclient となります。
さて、このような混乱を解決するために、MySQL は独自のバージョンの MySQL アダプタを提供しています。 mysql コネクタ でMySQLのAPIを使用するオールインPythonモジュールです。 C モジュールに依存しない で、標準的なPythonモジュールだけが使用されています。
つまり、問題は mysqlclient と mysql connector のどちらを使うかです。
私としては、公式にサポートされているライブラリのほうを選びますが
mysqlclient
も同様に良い選択でしょう。
どちらも、ここ数日の活発なコミットでわかるように、修正と新機能で活発に更新されています。
注:私はあまり経験がないので、どちらかがあなたのニーズに合わない場合があるかもしれません。両ライブラリは PEP-249 規格に準拠しています。つまり、少なくとも基本的な機能はどこでも問題ないはずです。
インストールと依存関係
- mysqlclient
C wrapper のフォークとして、MySQL で動作するために C モジュールを必要とし、これらの拡張を構築するために python ヘッダファイルを追加します (python-dev をお読みください)。インストールは使用するシステムに依存しますが、パッケージ名を認識し、インストールできることを確認してください。
- mysql コネクタ 主なドキュメント は非常にわかりやすいですが、しかし、あなたは Protobuf C++ 依存性 (mysqlコネクタの場合 バージョン >= 2.2.3 ).
関連
-
[解決済み】識別関係と非識別関係の違いとは?
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] utf8_general_ciとutf8_unicode_ciの違いは何ですか?
-
[解決済み] リストとタプルの違いは何ですか?
-
[解決済み] PythonモジュールとPythonパッケージの違いは何ですか?
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] mysql-python インストールエラー。インクルードファイル 'config-win.h' を開くことができません。
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] バブルソートの宿題
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?