Freitag, 7. November 2008
Den ursprünglichen Dump stellte ich mit phpMyAdmin her. Leider erlaubt die Web-Applikation nicht, den Charset des Dumps von UTF-8 nach LATIN1 (aka ISO-8859-1) anzupassen.
Deshalb ging es auf die Kommandozeile des Servers:
mysqldump --default-character-set=latin1 --compatible=mysql40 -u {user} -p {db} > dump.sql
Einerseits konnte ich so das Charset des Dumps festlegen (--default-character-set=latin1), andererseits musste ich aber auch auf die Kompatibilität achten (--compatible=mysql40). Leider war es mit letzterem Versprechen nicht wirklich weit her …
Auf Grund eines seit Monaten bestehenden Bugs in MySQL 5 enthielt der mysqldump-Dump Befehle, die MySQL 4.0.x nicht versteht:
SET @saved_cs_client = @@character_set_client;
SET character_set_client = @saved_cs_client;
… was MySQL 4 folgende Fehlermeldung ausgeben liess:
#1193 - Unknown system variable 'character_set_client'
Mittels vim (die GUI-Editoren unter Mac OS X mit Syntax-Highlighting kapitulierten vor 4000+ Zeilen) konnte ich den Dump dann doch noch derart zurechtbiegen, dass MySQL 4 die Datei schlussendlich schluckte. Der Befehl dazu lautete:
:g/^SET/d
Via: Vim: Delete every line in the file that does not match a pattern
Dieser vim-Befehl löscht kurzerhand alle Zeilen, die mit SET ... beginnen. Scheint dem Import nicht geschadet zu haben …