MySQLdb es una envoltura delgada de Python alrededor del módulo C que implementa API para la base de datos MySQL.
Hace algún tiempo se utilizó la versión MySQLDb1 del contenedor y ahora se considera un legado. Cuando MySQLDb1 comenzó a evolucionar a MySQLDb2 con correcciones de errores y soporte para Python3, se bifurcó un MySQLDb1 y así es como apareció mysqlclient , con correcciones de errores y soporte para Python3. En resumen, ahora tenemos MySQLDb2 que no está listo para su uso en producción, MySQLDb1 como un controlador desactualizado y un mysqlclient apoyado por la comunidad con correcciones de errores y soporte para Python3.
Ahora, para resolver ese lío, MySQL proporciona su propia versión del adaptador MySQL: conector mysql , un módulo de Python todo incluido que usa la API de MySQL sin dependencias de módulos C y solo se usan módulos de Python estándar.
Así que ahora la pregunta se reduce a: mysqlclient vs conector mysql.
En cuanto a mí, optaría por una biblioteca con soporte oficial, sin embargo, también mysqlclient
debería ser una buena opción. Ambos se están actualizando activamente con correcciones y nuevas funciones que puede ver en las confirmaciones activas en los últimos días.
Nota: No tengo mucha experiencia con ellos, por lo que puede haber casos en los que uno u otro no se adapte a sus necesidades. Ambas bibliotecas siguen el estándar PEP-249 , lo que significa que debería estar bien con al menos la funcionalidad básica en todas partes.
Instalación y dependencias
Como una bifurcación de la envoltura de C, requiere que los módulos de C funcionen con MySQL, lo que agrega archivos de encabezado de Python para construir estas extensiones (lea python-dev). La instalación depende del sistema que utilice, solo asegúrese de conocer los nombres de los paquetes y de poder instalarlos.