Aby rozszerzyć powyższą odpowiedź zaakceptowaną tylko przez łącze, rozważ następujące zmiany w swoim bieżącym pymysql
zainstalować. W przypadku MySQL 8, mysql-python API nie rozpoznaje prawdopodobnie nowszych zestawów znaków i stąd podniesiony KeyError
.
Aby rozwiązać ten problem, znajdź connectors.py skrypt pod pymysql
moduł znaleziony w tym katalogu:
print(pymysql.__file__)
Oryginalna kopia zapasowa connectors.py scenariusz. Następnie wprowadź następujące zmiany.
Oryginał (linie 1268-1269)
self.server_language = lang
self.server_charset = charset_by_id(lang).name
Zamień (wiersze 1268–1272)
self.server_language = lang
try:
self.server_charset = charset_by_id(lang).name
except KeyError:
self.server_charset = None
Uważaj, aby we wcięciach z powyższymi liniami uwzględnić ukryte tabulatory.
Odniesienie