Nach regelmässigen Updates von WordPress sah meine Datenbank in etwa so aus:

  • wp_options MyISAM latin1_swedish_ci
    wp_postmeta MyISAM latin1_swedish_ci
    wp_posts MyISAM latin1_swedish_ci
    wp_termsMyISAM utf8_general_ci
    wp_term_relationships MyISAM utf8_general_ci
    wp_term_taxonomy MyISAM utf8_general_ci

Bei einer neuen Installation von WordPress ist alles in utf8_general_ci, wie bekomme ich das geregelt?

Ich habe mit verschiedenen Blogs diverses probiert, Plugins zum konvertieren, editieren der Datenbank etc, war alles nicht das Wahre.

Ich exportiere nun die Inhalte eines Blogs aus WordPress und importiere diese in eine neue Installation.

Das gibt mir endlich die richtigen Umlaute, Sonderzeichen, alle Tags und Kategorien.

Zudem wirft man alle verwaisten Einträge in der alten Datenbank ab! Diese schrumpft dann auf die Hälfte oder gar ein Viertel der alten Größe.

Zum Vorgehen:

Latest WordPress besorgen (zur Zeit 2.3.3) und ganz neu woanders installieren, evtl. auf Wampp oder Xampp lokal oder in ein Verzeichnis oder Subdomain auf deinem Webspace.

Wichtig: wenn ich die selbe Datenbank nutze, in der neuen wp-config einen anderen table_prefix eintragen als der alte Blog hat!!!

(Nachtrag: in ein neues Verzeichnis in der alten Domain installieren und gleiche DB Daten mit anderem Prefix ist sehr sinnvoll, man braucht dann ja garnicht Die Datenbank hin und herschieben…)

Im noch laufenden alten Blog alle Plugins notieren und die neueste Version davon auf der Testinstallation aktivieren.

Dann aus diesem alten Blog auf Manage – Export – gehen und die WordPress eXtended RSS exportieren auf den Rechner zu Hause.

Wenn nun also das erste Login auf dem neu erstellten Testblog geklappt hat, würde ich mit phpMyAdmin erstmal eine Kopie der jungfräulichen Datenbank exportieren

Dann den einzigen Beitrag Hello World löschen, den brauchen wir ja wohl nicht.
Wichtig!! Der folgende Import macht insofern Probleme, als dass die Tags nur als ID-Nummer importiert werden!
Beschreibung des Problems hier: Tags Import As Numbers, Not Word
Um auch alle Tags richtig importiert zu bekommen braucht man wirklich eine neue fehlerlose wordpress.php.
Diese kommt in das Verzeichnis wp-admin/import der neuen Installation. Den Download dazu gibt es hier: download wordpress.php

Diese Datei bitte in wp-admin/import ersetzen!

Nun können wir uns mal zur Probe an den Import machen.

Dazu muss jedoch das Upload-Verzeichnis beschreibbar gemacht werden. Also per ftp wp-content/uploads anlegen und die Eigenschaften des Verzeichnisses auf 777 stellen.
Dieses Verzeichnis wird unter Option – Miscellaneous eingestellt.

Dann auf Manage – Import – WordPress die Datei wordpress.2008-xx-xx.xml auswählen und auf upload file and import klicken.

Dann wird man gefragt ob ein neuer User angelegt werden soll oder nicht, ich würde die Beiträge dem existierenden Admin zuordnen.
Wenn nun der Import klappt steht da:

XXX. Importing post XXX…
All done. Have fun!

Nun schauen wir mal unseren Blog an, vor allem ob alle Umlaute und Sonderzeichen stimmen. Bei mir hat’s bisher prima geklappt.

Alle Kommentare, Tags, Kategorien, Links in Beiträgen und Verweise auf Bilder, sieht wie vorher aus! (Links und Plugins müssen aber von Hand erstellt werden!)

Jetzt gehe ich auf der Testinstallation alle Einstellungen im Admin durch und passe diese den Einstellungen des noch laufenden Blogs an.

Also die ganze Reihe mal durchklicken und vergleichen! Permalinks sind wichtig, ebenso die Plugineinstellungen von zum Beispiel Simple-Tags, Add-Quicktags, XML-Sitemap und allen anderen Plugins die man weiterhin verwenden möchte.

Wichtig auch: Default post category und Eure Linkliste (Blogroll).

Wir haben dann eine Kopie unseres Blogs mit allen Einstellungen wie vorher.

Die mySQL Datenbank ist rein utf8 und ziemlich viel kleiner geworden – viele Plugins hatten sich dort eingetragen und wenn man diese nicht mehr nutzt liegen die Einträge als Leichen rum.

Meine Blogdotmysql zum Beispiel wurde von 877KB auf 184KB reduziert (GZip Größe)

Die komplette neue schlanke Datenbank exportieren wir nun von der Testinstallation und importieren sie gleich wieder in eine neu angelegte leere Datenbank auf der Site des alten Blogs.

Oder, wenn ich einen anderen table_prefix eingetragen habe, in die bestehende hinein.(wenn die Daten nicht schon dort sind, weil die Testinstallation mit anderem Prefix dort läuft)

Unter Plesk gehe ich da auf meine Domain und lege eine Datenbank mit anderem Namen an, dorhin wird die neue importiert. (das kann man sich sparen wenn man gleich in nur einer Datenbank arbeitet!!)

Wo sind wir nun?

Alter Blog läuft wie gehabt, eine schlanke utf8_general_ci Kopie der Inhalte liegt bereits nebendran.

Auf meinem PC habe ich eine Kopie der neuen Installation mit neuesten Plugins.

Ich nehme mein ftp Programm und ersetze alle WordPress Dateien in meinem bestehenden Blog.

Im Wurzelverzeichnis: bitte nicht einfach alles löschen, einfach die bestehenden Dateien ausser wp-config überschreiben!

Andere Dateien dort wie htaccess, sitemap, googlexxx und y_key_xxx oder robots.txt sollten dort bleiben!

wp-admin – löschen und neue Dateien hochschieben
wp-includes – löschen und neue Dateien hochschieben
In wp-content ist ja unser Theme, also bitte nicht einfach löschen!
Aber in wp-content/plugins alle Plugins löschen und neue Dateien hochschieben.

Nun müssen wir nochmal den phpMyAdmin bemühen.
In den wp_options hat unsere Testinstallation nämlich den Pfad des Verzeichnisses hinterlegt, der geändert werden muss!

Das sind zwei Einträge:

option_id 1: siteurl muss korrigiert werden und ebenso option_id 39: home.

Wenn das erledigt ist, passe ich die wp-config an:

entweder nur den Eintrag table_prefix und dann auch zusätzlich (wie in neuen wp-config enthalten und zu entnehmen)
define(‚DB_CHARSET‘, ‚utf8‘);
define(‚DB_COLLATE‘, “);

oder, wenn es eine andere DB ist auch die anderen Angaben wie db-name, db-user und passwort.

Sobald die geänderte wp-config auf dem Server ist, kann ich mich nur noch mit dem neuen Passwort der Testinstallation einloggen!!

Bei mir hier in diesem Blog, den ich umgestellt habe während ich das schrieb, lief alles ohne Komplikationen ab.

Nur das Theme hatte sich auf das default theme umgestellt und bei dem Plugin Google XML Sitemaps musste der Pfad zum XSLT stylesheet durch klicken auf Use Default wieder nachgestellt werden.
Hat mich nun gut zwei Stunden gekostet, war aber eine empfehlenswerte Diät für den Blog.

Die alten Tables (oder die ganze alte DB) lasse ich zur Sicherheit noch ein paar Tage stehen, dann werden diese gelöscht.

Wenn man eh noch im phpMyAmin ist, warum nicht gleich ein Backup exportieren?!!

Und per ftp alle Dateien vom Webspace ziehen und auf seinem Rechner speichern – das mach ich nun..

Viel Erfolg!!

latin1_swedish_ci is a single byte character set, unlike utf8_general_ci. Compared to latin1_general_ci it has support for a variety of extra characters Anne Stringfield married Actor Steve Martin (61) married girlfriend Anne Stringfield (35) There were about 70 guests including Steve’s ex Victoria Tennant. Nach dem Upgrade der Blogs 2.9 fiel , ddie Umlaute und andere Sonderzeichen nicht korrekt dargestellt wurden. d.h. „ĂĽ“ anstatt syanoe's webnote 2~3 CentOS … / Tags: syanoes, webnote, 46 Responses to Import Large MySQL Databases into PHPMyAdmin with BigDump.php . What does collation mean in SQL, and what does it do?