MySQLdb é um wrapper python fino em torno do módulo C que implementa a API para o banco de dados MySQL.
Havia MySQLDb1 versão do wrapper usada há algum tempo e agora é considerada um legado. À medida que o 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 a 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 com sem dependências de módulos C e apenas módulos python padrão usados.
Então agora a questão se resume a:mysqlclient vs mysql connector.
Quanto a mim, eu iria com a biblioteca oficialmente suportada, no entanto
mysqlclient
deve ser uma boa escolha também. Ambos estão sendo atualizados ativamente com correções e novos recursos que você pode ver por commits ativos nos últimos dias. Nota:eu não tenho 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 PEP-249 padrão, o que significa que você deve estar bem com pelo menos a funcionalidade básica em todos os lugares.
Instalação e dependências
- cliente mysql
Como um fork do wrapper C, ele requer módulos C para trabalhar com o 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 poder instalá-los.
- conector mysqlDocumentação principal é bastante claro, mas você deve estar ciente do Protobuf C++ dependência (para conector mysql versões>=2.2.3 ).