MySQLdb é um wrapper fino de python em torno do módulo C que implementa API para banco de dados MySQL.
Houve MySQLDb1 versão de fardos usados há algum tempo e agora ele é considerado como um legado. Como MySQLDb1 começou a evoluir para MySQLDb2 com correções de bugs e suporte a Python3, um MySQLDb1 foi bifurcado e aqui está como mysqlclient apareceu, com correções de bugs e suporte a Python3. Resumindo, agora temos MySQLDb2 que não está pronto para uso em produção, MySQLDb1 como um driver desatualizado e um mysqlclient suportado pela comunidade com correções de bugs e suporte Python3.
Agora, para resolver essa bagunça, o MySQL fornece sua própria versão do adaptador MySQL - conector mysql , um módulo python completo que usa a API MySQL sem dependências de módulos C e apenas módulos python padrão usados.
Portanto, agora a questão se resume a: mysqlclient vs mysql connector.
Quanto a mim, eu escolheria uma biblioteca com suporte oficial, mas também mysqlclient
deve ser uma boa escolha. Ambos estão sendo ativamente atualizados com correções e novos recursos que você pode ver por commits ativos nos últimos dias.
Nota: Eu não tinha muita experiência com eles, então pode haver casos em que um ou outro não atenda às suas necessidades. Ambas as bibliotecas seguem o padrão PEP-249, o que significa que você deve estar bem com pelo menos a funcionalidade básica em todos os lugares.
Instalação e Dependências
Como um fork do wrapper C, ele requer módulos C para trabalhar com MySQL, que adiciona arquivos de cabeçalho python para construir essas extensões (leia python-dev). A instalação depende do sistema que você usa, apenas certifique-se de conhecer os nomes dos pacotes e de poder instalá-los.