MySQLdb to cienkie opakowanie Pythona wokół modułu C, które implementuje API dla bazy danych MySQL.
Jakiś czas temu była używana wersja opakowania MySQLDb1, która obecnie jest uznawana za starszą . Gdy MySQLDb1 zaczął ewoluować do MySQLDb2 z poprawkami błędów i obsługą Python3, MySQLDb1 został rozwidlony i oto jak pojawił się mysqlclient , z poprawkami błędów i obsługą Python3. Podsumowując, mamy teraz MySQLDb2, który nie jest gotowy do użytku produkcyjnego, MySQLDb1 jako przestarzały sterownik i obsługiwanego przez społeczność mysqlclient z poprawkami błędów i obsługą Python3.
Teraz, aby rozwiązać ten bałagan, MySQL dostarcza własną wersję adaptera MySQL - łącznik mysql , wszechstronny moduł Pythona, który używa MySQL API bez zależności modułów C i używa tylko standardowych modułów Pythona.
Więc teraz pytanie sprowadza się do: mysqlclient vs mysql connector.
Jeśli chodzi o mnie, wybrałbym oficjalnie obsługiwaną bibliotekę, jednak również mysqlclient
powinien być dobrym wyborem. Oba są aktywnie aktualizowane o poprawki i nowe funkcje, które można zobaczyć dzięki aktywnym zatwierdzeniom w ostatnich dniach.
Uwaga: nie miałem z nimi dużego doświadczenia, więc mogą się zdarzyć sytuacje, w których jedna lub druga nie będzie odpowiadać Twoim potrzebom. Obie biblioteki są zgodne ze standardem PEP-249, co oznacza, że powinieneś mieć przynajmniej podstawową funkcjonalność wszędzie.
Instalacja i zależności
Jako rozwidlenie opakowania C wymaga modułów C do pracy z MySQL, który dodaje pliki nagłówkowe Pythona, aby zbudować te rozszerzenia (przeczytaj python-dev). Instalacja zależy od używanego systemu, po prostu upewnij się, że znasz nazwy pakietów i możesz je zainstalować.