[MySQL] Tabellen migrieren von latin1_swedish_ci nach utf-8 unicode

maceis

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
Hallo zusammen,

ich betreue eine Domain mit MySQL Server, in der einige ältere Tabellen mit "Kollation: latin1_swedish" enthalten sind. Der Server selbst läuft auf utf8-unicode, die Website habe ich auch schon längst auf unicode umgestellt.

Nun möchte ich gerne die vorhandenen Tabellen auf unicode umstellen.
Wie gehe ich da am besten vor?

Übers Internet habe ich direkten Zugriff auf den mysql-Server. PHPMyAdmin ist auch verfügbar.
Ich habe mir das ganz grob so vorgestellt, dass ich mit mysqldump einen lokalen Abzug erstelle, dann die Kodierung des dumps ändere und das Ergebnis wieder hochlade.

Oder kann ich einfach mit
Code:
ALTER TABLE  `bla` CHANGE  `blub`  `blub` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci
das Charakter Set und die Kollation ändern und mysql kümmerst sich um die Umwandlung der Zeichen? Das wäre natürlich das Einfachste.

Bin für jeden Tipp dankbar.
Gruß
maceis
 
Zuletzt bearbeitet:
Öhmm, geht das nicht, indem Du die Kollation einfach umstellst?
 
Ja, auf den Gedanken bin ich auch gerade gekommen (habe oben schon editiert).
Ich weiß nur nicht, ob mysql sich dann um die Umwandlung der Zeichen kümmert oder ob aus den Sonderzeichen "Hackfleisch" wird.
Muss ich mal mit 'ner lokalen Kopie testen.
 
mysql speichert schon seit 3.x irgendwas intern die sonderzeichen als unicode...
probleme kriegt man nur bei uralten DBs, wo man unterschiedliche kodierungen in einer DB hat und toller weise bei serialisierten arrays von PHP in denen umlaute drin sind...
 
Muss ich mal mit 'ner lokalen Kopie testen.

Ja, mach das mal... ich hab das vor längerer Zeit mal gemacht, ich meine, da wäre es durch das Umstellen der Kollation gegangen – kann mich aber irren.

Wenn es danach erstmal so aussieht, als würde es nicht gehen, dann setze mal (am besten direkt nachen dem DB-Connect) folgenden Query ab:
Code:
mysql_query("SET NAMES 'utf8'");

Diese kleine Zeile hat bei mir schon wahre Wunder bewirkt. :)
 
Zurück
Oben Unten