MySQLdb ist ein dünner Python-Wrapper um das C-Modul, der die API für die MySQL-Datenbank implementiert.
Vor einiger Zeit wurde die MySQLDb1- Version des Wrappers verwendet, und jetzt wird sie als Vermächtnis angesehen. Als sich MySQLDb1 mit Fehlerkorrekturen und Python3-Unterstützung zu MySQLDb2 entwickelte , wurde ein MySQLDb1 gegabelt, und so sah mysqlclient mit Bugfixes und Python3-Unterstützung aus. Zusammenfassend lässt sich sagen, dass wir jetzt MySQLDb2 haben, das nicht für die Produktion bereit ist, MySQLDb1 als veralteten Treiber und eine von der Community unterstützte mysqlclient mit Fehlerkorrekturen und Python3-Unterstützung.
Um dieses Problem zu lösen, bietet MySQL eine eigene Version des MySQL-Adapters - den MySQL- Connector , ein All-In-Python-Modul, das die MySQL-API ohne Abhängigkeiten von C-Modulen und nur mit Standard-Python-Modulen verwendet.
Nun kommt die Frage: mysqlclient vs mysql connector.
Ich würde mich für eine offiziell unterstützte Bibliothek entscheiden, mysqlclient
sollte aber auch eine gute Wahl sein. Beide werden aktiv mit Korrekturen und neuen Funktionen aktualisiert, die Sie durch aktive Commits in den letzten Tagen sehen können.
Hinweis: Ich hatte nicht viel Erfahrung mit ihnen, daher kann es Fälle geben, in denen der eine oder andere nicht Ihren Anforderungen entspricht. Beide Bibliotheken folgen dem PEP-249- Standard.
Installation und Abhängigkeiten
Als Fork des C-Wrappers müssen C-Module mit MySQL zusammenarbeiten, das Python-Header-Dateien hinzufügt, um diese Erweiterungen zu erstellen (lesen Sie python-dev). Die Installation hängt vom verwendeten System ab. Stellen Sie lediglich sicher, dass Sie die Paketnamen kennen und diese installieren können.