Freitag, 7. November 2008

Datenbankdump von MySQL 5 nach MySQL 4

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 …

Liked this post? Follow this blog to get more. 

Tags:
Labels: IT, Linux

Kommentar erfassen