MySQL 5, mir graut’s vor dir
Bald ist es soweit. Ich komme nicht mehr drum herum, meine Datenbanken auf MySQL 5 zu migrieren. Scheinbar ist der Server des Providers, der die MySQL 4 Installation beherbergt, nicht mehr der Frischeste unter der Sonne. An und für sich ist der Umstieg ja kein großes Problem, wenn da nicht die uralte “latin1_swedish” Kollation wäre, mit der ich seit 2006 meine beiden Blogs betreibe.
“Hä, was will der?” – für Leser, die sich mit so etwas nicht befassen wollen oder müssen (Posterous-User zum Beispiel): wenn man solch eine Konfiguration hat, verwurstet es einem den Zeichensatz, genauer gesagt die Umlaute, wenn man auf “UTF-8″ umsteigt. Und auch wenn man MySQL 5 wechselt, soll es zu solchen Problemen kommen – so meine Nachforschungen.
Wie man die Kollation umstellt, habe ich bereits hier finden können. Auch Plugins gibt es, die einem behilflich sein können. Ich bin jedoch jemand, der auf die Hilfe meiner Leser baut. Habt ihr Erfahrungen, die ihr zum Besten geben könnt? Oder seid ihr gar die MySQL-Cracks, für die das der blanke Witz ist? Danke für eure Tipps!
Related posts:
http://combatwombat.7doves.com.....tf8-issues
kann da sehr hilfreich sein
Bei den meisten Installationen hat es bei mir/uns keine Probleme gebracht. Allerdings empfiehlt sich ein Dump der Datenbank zu ziehen bei dem du weißt, dass du ihn in irgend einem Editor mit dem richtigen Encoding öffnen kannst, sodass du das im Zweifelsfall einspielen kannst.
Grüße Markus
In solchen Fällen exportiere ich die Datenbank mit phpMyAdmin. Die sql Datei lade ich in TextMate und ändere dort die Sonderzeichen mit Suchen und Ersetzen (sind ja normalerweise nur 7 verschiedene). Dann importiere ich den Dump wieder in die (neue) Datenbank. Hat bisher immer geklappt (und entspricht dem, was Markus im vorherigen Kommentar gesagt hat).
Ja, so in der Art hätte ich das jetzt auch gemacht.
Das umfasst aber dann nicht Sonderzeichen wie … oder EUR, und von é und È mal ganz zu schweigen. Das hatte ich neulich, da musste meine Datenbank ebenfalls von 4 auf 5 umgebaut werden. Es gibt immer noch einige Sonderzeichen, die nicht migriert sind.
Vielleicht sollte man sich auf ANSI zurück besinnen und nur noch 7-Bit Zeichen verwenden? *seufz*
Ich wurde vor 14 Tagen ohne Vorwarnung von All Incl über Nacht auf Version 5 zwangsportiert. Natürlich war ich erst einmal ganz schön platt – aber: Alle 14 Datenbanken (90% WordPress) verrichten anstandslos ihren Dienst. 2-3 Plugins versagten ihren Dienst, sonst war alles gut.
.
Auch wenn ich immer noch vor mich hinstaune, lediglich Mint hat sich in zwei Installationen mächtig aufgehangen – und genau da solltest du vielleicht schauen, da du ja hier Mint und WP zusammen huscheln lässt
Mint habe ich in einer separaten DB und schon auf MySQL 5 migriert. Das war sozusagen mein Versuchskaninchen.
Bin bei all-inkl.com auf Version 5 umgestiegen, ohne jegliche Probleme, auch nicht bei Mint. Allerdings benutze ich nicht WordPress als Redaktionssystem.
Das passt schon und kann nur besser werden.
Ich habe auch noch den einen oder anderen Artikel parat. Je nach Größe deiner DB, nutze mysqlDumper, alles andere sollte gehen.
Die Daten kannst du ja problemlos in latin1_swedish belassen. Wenn du die Daten als UTF-8 abholen willst (SET NAMES) konvertiert MySQL automatisch zwischen den Kodierungen. Eine gute Erklärung findest du bei Köhntopp.
Also rein theoretisch sollte nichts böses passieren, wenn hinten dran die Datenbank umgestellt wird. Verwende auch immer noch latin1_swedish und bin auf MySQL 5 … WordPress kommt damit jedenfalls bei mir zurecht
Grüße
Im Codex gibt es eine sehr gute Seite für genau dein Problem:
http://codex.wordpress.org/Con.....acter_Sets
Ich hatte mir dazumal, als ich das selbe Problem hatte, ein PHP Skript gemacht, welches durch alle Tabellen ging und die Umlaute korrekt ersetzte.
Uuuua! Genau DAS wären die Inhalte meiner schlaflosen Träume! Dieses absolut ungute Gefühl hinsichtlich einer datenbankrelevanten “Veränderung”! Genau deshalb bin ich zu posterous gewechselt.
Aber ich gebe ja zu, dass ich von WordPress einfach zu wenig Ahnung hatte bzw. zu impulsiv damit umgegangen bin!
Oje, das hatte ich vor ein paar Wochen auch vor mir. Nach der Umstellung waren dann die Umlaute weg. Irgendwo im Web habe ich dann einen guten SQL Befehl gefunden, der alles wieder in Ordnung brachte.
Seltsamerweise funktioniert aber seit der Umstellung das Postview Plugin nicht mehr, welches so schön angezeigt hat, wie viele Leute einen Beitrag angeschaut haben
Ich wünsche auf jeden Fall viel Glück!
Die viel schlimmere Falle ist ja, dass WordPress (zumindest bei mir) irgendwann angefangen hat, in den iso-8859-1-codierten Spalten trotzdem UTF-8 abzuspeichern. Das führte bei allen Exportversuchen zu doppelt codiertem Zeichenbrei (in Beiträgen und Kommentaren standen so schöne Worte wie “größere”). Dagegen habe ich vor einiger Zeit mal ein Skript geschrieben. Falls Du also auf dieses Problem stößt, dann hilft Dir das vielleicht.
Ähm. Ja. Tolles Script. Da ich aber keinen Plan habe, wie man es genau einsetzt, komme ich dann mal auf dich zurück, wenn ich darf.
Wenn Dich dieses spezielle Problem trifft, dann meld’ Dich einfach…
Danke für eure vielen Tipps. War mal wieder eine gute Idee, meine Leser nach ihrer Meinung zu fragen.
Als ersten Schritt werde ich jetzt erst mal auf ein ManagedHosting Paket upgraden. Da habe ich nicht nur schnellere Server, sondern auch so viele Datenbanken wie ich will. Das heißt, ich werde die jetzigen erst mal duplizieren und dann an den Clones testen. Besser das…
also ich mach das immer so (ja leider musste ich das schon oft tun):
Braindump:
- Dump von der DB ziehen
- mit dem gnu tool “iconv” das encoding ändern
iconv –from-code ISO8859-15 –to-code UTF-8 inputfile.mysql > output.mysql
- und dann noch mit suchen ersetzen bei den Creates auf UTF-8 ändern.
dann einspielen in MYSQL
Man kann auch ein Script drüberlaufen lassen, das UTF-8-Konformität erzwingt:
http://toscho.de/2009/utf-8-erzwingen/
Das Zebramaedchen macht sich´s leicht:
http://tumblr.zebramaedchen.de.....nvertieren :
ALTER DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Na, eigentlich stehen hier schon mehr als genug Tipps, oder?
. Mach doch einfach mal ne lokale Installation und teste, welche Methode funktioniert. Dann zerspielst du dir nicht dein Blog und kannst sicher gehen, dass die Migration auch gut geht.
Ist ja nicht so, dass ich noch nicht rumprobiert habe. Sogar online.
Habe schon die DB exportiert und in eine neue SQL5-DB importiert. Anschließend in der wp-config umgebogen, um dann zu sehen, dass tatsächlich alle Sonderzeichen im Eimer waren.
Muss ich ran – ich weiß…
Stand der Dinge derzeit:
Habe auf MySQL 5 migriert, den Zeichensatz aber auf Latin1 gelassen. Wie ihr seht, funktioniert das ganz gut.
Pingback: Umzug von MySQL 4 auf 5 | admartinator.de