Ich erhalte ein Fehler versuchen, eine Remote-MySQL-Datenbank von einem Windows 7 Client über Python 2.7 + MySQLdb 1.2.5 + verbinden sqlalchemy 1.0.9. Dies ist ein Ergebnis der vor kurzem Änderung des Standardzeichensatzes des Servers auf utf8mb4. Der Server läuft MySQL 5.5.50.mit Windows-mysql-Python "Can not Zeichensatz utf8mb4 initialisieren"
Ich verbinde wie folgt aus:
DB_ENGINE = sqlalchemy.create_engine("mysql+mysqldb://{user}:{pass}@{host}:{port}/{database}?charset=utf8mb4".format(**DB_SETTINGS))
Session = sqlalchemy.orm.sessionmaker(bind=DB_ENGINE)
Der Fehler ist:
File "C:\Applications\Python27\lib\site-packages\sqlalchemy\engine\default.py", line 385, in connect
return self.dbapi.connect(*cargs, **cparams)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\connections.py", line 221, in __init__
self.set_character_set(charset)
File "C:\Applications\Python27\lib\site-packages\MySQLdb\connections.py", line 312, in set_character_set
super(Connection, self).set_character_set(charset)
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2019, "Can't initialize character set utf8mb4 (path: C:\\mysql\\\\share\\charsets\\)")
Der Server der my.cnf enthält folgende Komponenten:
init_connect = 'SET collation_connection = utf8mb4_unicode_ci'
init_connect = 'SET NAMES utf8mb4'
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake
Ich habe kein Problem auf die Verbindungs Datenbank von einem Ubuntu-Client, also vermute ich, dass das Problem mit dem Windows-Client und nicht der Serverkonfiguration ist.
Die MySQL-Dokumentation schlägt die Fehlermeldung an den Client zurückzuführen sein könnte werden, ohne Multibyte-Zeichensatz-Unterstützung kompiliert:
http://dev.mysql.com/doc/refman/5.7/en/cannot-initialize-character-set.html
Da dies jedoch Windows ich einfach den Client und don Download‘ t Kontrolle über seine Kompilierungsflags.
Ich habe versucht, MySQLdb in einer Vielzahl von Möglichkeiten der Installation:
- Download und Installation der MySQL Connector/Python .msi dev.mysql.com
- Download und Installation der MySQLdb 1.2.5. exe von pypi
- Ausführen von Windows „BIB mysql-python installieren“ Eingabeaufforderung
Jede dieser Ergebnisse in einer MySQLdb Bibliothek, die nicht scheinen, kann den utf8mb4 Charakter s zu handhaben et.
Jede Hilfe wäre sehr willkommen!
Welche Version von MySQL beteiligt ist ?? utf8mb4 war bis 5.5.3 nicht verfügbar. –
Tut mir leid, dass ich das nicht einbeziehe - Ich benutze MySQL 5.5.50 – Jugdish
Beachten Sie, dass 'init_connect' nicht ausgeführt wird, wenn Sie als' root' verbinden. –