Ich möchte meine Django-Site so einrichten, dass sie UTF-8 für MySQL narrensicher verwendet, unabhängig davon, ob die MySQL-Installation UTF-8 als Standard verwendet. Zusätzlich zum Erstellen der Tabellen mit UTF-8-Codierung habe ich meiner Datenbankinitialisierung in settings.py Folgendes hinzugefügt, um sicherzustellen, dass die Verbindung auch utf-8 verwendet:
%Vor%Dies führt zu einem Fehler:
%Vor%Was ist der richtige Weg? Gibt es einen anderen Ort, an dem die SET NAMES ausgeführt werden müssen?
Sie müssen SET nur einmal verwenden und andere Befehle wie folgt anfügen:
%Vor% Alles, was ich tun musste, war dies in settings.py
:
Dann habe ich die Datenbank in MySQL selbst erstellt mit:
%Vor% gefolgt von allen Aufrufen CREATE USER
und GRANT
.
Danach haben ./manage.py syncdb
und ./manage.py migrate
(seit ich South benutze) alles erledigt.
Es hat bisher gut funktioniert. Mußte auch keine MySQL-Konfigurationsdateien ändern. (Der Systemadministrator wollte, dass MySQL den latin1
-Zeichensatz standardmäßig für die anderen Benutzer verwendet.)