Blogbeitrag

Michael Hollmann

Neues aus der IT-Welt

Ihr Ansprechpartner
Michael Hollmann

Geschäftsführender Gesellschafter

Hotline
+49 (421) 8 35 97 00

Kauderwelsch – Encoding Probleme bei der Arbeit mit MySQL vorbeugen

| von Ingo Hoff | Kategorie: Datenbanken, Tipps & Tricks,

Wer sich im Netz auf die Suche nach Tipps zum Umgang mit MySQL Dumps macht, findet dabei viele Foreneinträge in denen MySQL mit Ausgabeumleitungen (Shell Redirection) gefüttert wird. Unsere Erfahrungen hierbei waren teilweise recht ernüchternd, da mit den daraus resultierenden Encoding Problemen immer eine große Verwirrung einhergeht. Dieses Beispiel bezieht sich auf die MySQL Kommandozeilen Tools für Linux. Auf Windows Systemen sollten diese jedoch auch ähnlich verfügbar sein. 


Bitte keine Kommandos per Copy 'n Paste auf Produktivsystemen ausführen, ohne zu verstehen was diese auslösen. Dies sind Beispiele die an die eigenen Bedürfnisse angepasst werden müssen.


Abhängig von der verwendeten Datenbank Collation und dem Encoding der Shell kann es bei der Verwendung von Shell Redirection zu Encoding Problemen kommen, so dass Umlaute oder Sonderzeichen im Datenbestand falsch interpretiert werden und anschließend fehlerhaft in die Datenbank geschrieben werden. Stattdessen sollte bei der Verwendung von MySQL Kommandozeilen Tools nach Möglichkeit die Option –result-file (- r) verwendet werden.

Also statt

mysqldump -u x -p y example_db > /root/dump.sql

besser

mysqldump -u x -p y -r /root/dump.sql example_db

Äquivalent dazu sollte das Einspielen statt

mysql -u x -p y example_db < /root/dump.sql

besser in der MySQL Command Line erfolgen

mysql -u x -p y example_db
mysql> SOURCE '/root/dump.sql';

Die Option –result-file (-r) wird auch von anderen MySQL Tools unterstützt (z.B. mysqlbinlog), daher lohnt sich immer ein Blick in die zugehörige Man-Page.

 

Kommentare (0)

Schreibe ein Kommentar

Inspiration per E-Mail

Haltet mich über folgende Themen "up-to-date":