MySQLdb es un contenedor delgado de python alrededor del módulo C que implementa la API para la base de datos MySQL.
Había MySQLDb1 versión de wrapper utilizada hace algún tiempo y ahora se considera heredada. Cuando MySQLDb1 comenzó a evolucionar a MySQLDb2 con correcciones de errores y compatibilidad con Python3, se bifurcó un MySQLDb1 y así es como mysqlclient apareció, 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 obsoleto y mysqlclient compatible con la comunidad con correcciones de errores y compatibilidad con Python3.
Ahora, para resolver ese problema, MySQL proporciona su propia versión del adaptador MySQL:conector mysql , un módulo integral de Python que utiliza la API de MySQL sin dependencias de módulos C y solo se utilizan módulos estándar de python.
Así que ahora la pregunta se reduce a:mysqlclient vs mysql connector.
En cuanto a mí, optaría por una biblioteca compatible oficialmente, sin embargo, mysqlclient
también debería ser una buena opción. Ambos se están actualizando activamente con correcciones y nuevas funciones que puede ver mediante 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 PEP-249 estándar, lo que significa que debería estar bien con al menos la funcionalidad básica en todas partes.
Instalación y Dependencias
- cliente mysql
Como una bifurcación del envoltorio de C, requiere módulos de C para trabajar con MySQL, que agrega archivos de encabezado de python para construir estas extensiones (léase python-dev). La instalación depende del sistema que utilice, solo asegúrese de conocer los nombres de los paquetes y poder instalarlos.
- Conector mysqlDocumentación principal es bastante claro, sin embargo, debe tener en cuenta Protobuf C++ dependencia (para conector mysql versiones>=2.2.3 ).