Umstellung auf MySQL
22.03.2005
Nachdem ich nun ein paar Tage mit Movable Type und der Datenablage im Dateisystem herumgespielt hatte, wurde es Zeit, auf die Speicherung in einer SQL-Datenbank umzusteigen. Als Entwickler für MS SQL Server oder Oracle kenne ich mich mit SQL aus. Aber ich hatte noch niemals etwas mit MySQL zu tun gehabt. Auch wenn ich also nicht gerade die ideale Besetzung für diese Aufgabe war, hat die Installation durchaus funktioniert.
Installation MySQL
Das MySQL ist ein vollwertiger SQL-Server, der als Open-Source Entwicklung seit einigen Jahren an Bedeutung gewonnen hat. Er wird in dem so genannten "Dual Licensing Model" zur Verfügung gestellt. Solange man das MySQL nicht mit einer eigenen Anwendung, für welche man nicht den Quellcode zur Verfügung stellen möchte, vertreiben will, kann man das MySQL kostenlos herunterladen und nutzen.
Ich habe den Download der aktuellen Version v4.1 durchgeführt. Konkret erschienen mir die Komponenten...
- MySQL Database Server: die eigentliche Datenbank
- MySQL Administrator: ein Werkzeug zur Verwaltung des MySQL Servers
- MySQL Query Browser: Werkzeug zur interaktiven Ausführung von SQL
...interessant. Alle werden mit Hilfe eines MSI-Pakets installiert, was diesen Teil der Umstellung auf MySQL recht einfach gestaltete. Nach der Installation der drei Komponenten sollten Sie in der Lage sein,...
- eine Verbindung zum MySQL Server herstellen
- ein neues Schema anlegen
- einen neuen Benutzer anlegen und ihn auf das Schema berechtigen
...zu können.
MySQL für Movable Type vorbereiten
Das Movable Type benötigt im MySQL ein eigenes Schema. Die Objekte innerhalb dieses Schemas (Tabellen, Views, etc.) werden vom Movable Type bei einem der späteren Schritte angelegt. Aber das Schema muss von Ihnen manuell erstellt werden. Benutzer Sie hierfür den MySQL Administrator. Anschließend legen Sie einen neuen Benutzer an und berechtigen Sie diesen auf das Schema.
Unglücklicherweise passt das MySQL v4.1 nicht perfekt mit den Perl Bibliotheken zusammen, welche aktuell verteilt werden. Es ist offensichtlich so, dass das MySQL mit der Version v4.1 eine Änderung der Authentifizierung der Anwender eingeführt hat. Offensichtlich werden die Kennwörter im MySQL Server beginnend mit dieser Version auf andere Weise gespeichert. Das verantwortliche DBD:mysql Modul wurde aber noch nicht aktualisiert, um die geänderte Situation zu meistern.
Beachtet man nicht den nachfolgenden Hinweis, so wird Movable Type beim Zugriff auf die Datenbank den Fehler...
Bad ObjectDriver config: Connection error: Client does not support authentication protocol requested by server; consider upgrading MySQL client
...bringen. Sofern Sie diese Fehlermeldung erhalten, hat etwas mit er Kommunikation zwischen Movable Type und MySQL nicht geklappt. Dieses Problem ist in einem Artikel auf der MySQL Homepage beschrieben. Man vermeidet das Problem dadurch, dass man für den Datenbankbenutzer eine Speicherung des Kennworts im alten Format erzwingt. Dies rreicht man dadurch, dass man im MySQL Query Browser die beiden SQL Befehle...
UPDATE mysql.user
SET Password = OLD_PASSWORD('newpwd')
WHERE Host = 'some_host' AND User = 'some_user';
FLUSH PRIVILEGES;
...absetzt. Dabei müssen natürlich die Platzhalter »newpwd«, »some_host« und »some_user« durch die konkreten Werte ersetzt werden.
Der MySQL Server ist in diesem Zustand für Movable Type vorbereitet, so dass wir nun mit der Umstellung auf MySQL fortfahren können.
Installation neuer Perl Komponenten
Vor einigen Tagen habe ich auf dieser Website in dem Eintrag Installation unter Windows 2003 beschrieben, dass ich das ActivePerl von ActiveState einsetze. Ähnlich wie für die Speicherung im Dateisystem besondere Perl-Module installiert werden mussten, müssen auch für die Verwendung von MySQL weitere Komponenten eingerichtet werden.
Six Apart gibt in der Installationsanweisung keine exakten Informationen, welche Module installiert werden müssen. Deshalb ist dieser Schritt für einen Perl-unkundigen Anwender etwas schwierig. Mit folgendem habe ich gute Ergebnisse erzielt...
- In das Verzeichnis »C:\Programme\ActiveState\Perl\bin« wechseln
- Programm »ppm.exe« aufrufen
- Kommando »install dbd-mysql« ausführen
- Kommando »install dbd-mysqlpp« ausführen
- Programm mit »quit« wieder verlassen
Anschließend sollte Perl und somit dann auch Movable Type in der Lage sein, auf MySQL Datenbanken zugreifen zu können.
Konfiguration Movable Type
Um Movable Type mitzuteilen, dass die Daten in der MySQL Datenbank abgelegt werden sollen, müssen nun die folgenden Änderungen durchgeführt werden.
In der Datei »mt.cfg« muss der bisherige Pfad zur Speicherung im Dateisystem auskommentiert werden.
# DataSource ./db
In den folgenden Zeilen müssen der Datenbanktreiber sowie die Namen der Datenbank und des Datenbankbenutzers...
ObjectDriver DBI::mysql
Database <database_name>
DBUser <database_user>
...angegeben werden. Letztendlich muss in der Datei »mt-db-pass.cgi« das Kennwort des Datenbankbenutzers eingetragen werden.
Datenbank einrichten
Wie in meinem anderen Artikel beschrieben, kann über das Programm »mt-check.cgi« überprüft werden, ob alle Voraussetzungen für die Nutzung des Movable Type gegeben sind.
Beim Aufruf des Programms »mt-load.cgi« legt Movable Type die erforderlichen Objekte in der MySQL Datenbank an. Anschließend werden dann bei der Benutzung des Movable Types alle Daten (Autoren, Kategorien, Einträge, etc.) in der MySQL Datenbank gespeichert.
Übernahme der Daten
Auf der Six Apart Homepage steht eine Beschreibung zur Verfügung, in welcher die Übernahme von Daten aus dem Dateisystem eine MySQL Datenbank beschrieben wird.
In meinem Fall habe ich diese Migration nicht verwendet. Ich habe für eine Übergangszeit zwei Movable Type Installationen - zwei virtuelle Verzeichnisse, eines mit Speicherung im Dateisystem, eines mit Speicherung im MySQL Server - gleichzeitig im MS IIS gehabt. Die wenigen Ergebnisse, die bereits erstellt waren, habe ich manuell mit Copy+Paste übernommen.
mgs | 22.03.2005
Feedback erwünscht!
Wie fanden Sie den Eintrag? Interessant? Langweilig? Ich freue mich über Ihren Kommentar. Wenn Ihnen der Eintrag geholfen hat, setzen Sie doch einen Link auf http://www.movable-type-weblog.de/.
Bitte keinen Spam
Um das Weblog vor Spam zu schützen, wird das MT-Approval Plugin eingesetzt. Sie müssen einen neuen Kommentar zunächst in der Vorschau ansehen, bevor dieser auf dem Server gespeichert werden kann. Ferner wird ein Kommentar erst gesichtet, bevor er freigegeben wird. Näheres finden Sie in meinem Artikel Weblog Spamming Grundlagen, wo einige Schutzmaßnahmen skizziert werden.
Wenn Sie sich an TypeKey angemeldet haben, wird Ihr Kommentar automatisch freigegeben.
Neuen Kommentar schreiben
TypeKey wurde an dieser Stelle vorübergehend deaktiviert. Erstellen Sie Ihren Kommentar bitte ohne TypeKey oder melden Sie sich im Vorschau-Dialog an.

