Seite 1 von 1

MediaWiki: Updateprobleme

Verfasst: 05.04.2009, 02:22
von Wuppi
Hi

ich muß unser aktuelles MediaWiki (1.3.9; latin1) mal auf die aktuellste Version bringen (1.14.0; utf8 - was anderes wird nicht mehr unterstützt). Hatte zwischendurch schon paarmal versucht zu updaten aber es hat nie geklappt - ständig stimmte was am Zeichensatz nicht - Umlaute waren zwar da, aber Links mit Umlauten funktioniernten nicht. Lösungen von der MediaWiki-Seite waren nicht wirklich hilfreich - bezogen sich vorallem auf falsch dargestellte Umlaute im Text.

Gestern dann mal an die 1.14.0 gemacht ... tja ... Links mit Umlauten funktionieren ... sieht alles gut aus - hatte schon die "Update kommt bald"-Meldung fertig gemacht. Dann fand ich doch einen fiesen Fehler:
Es ist ein Datenbankfehler aufgetreten. Der Grund kann ein Timeout sein, der Ausfall eines Servers oder auch ein Programmierfehler. Die letzte Datenbankabfrage lautete:

(SQL-Abfrage versteckt)

aus der Funktion „LinkHolderArray::replaceInternal“. MySQL meldete den Fehler „1271: Illegal mix of collations for operation ' IN ' (localhost)“.
Das bekomm ich gelöst:
1) $wgDBmysql5 = true; => das setz ich auf false. Nachteil: Umlaute werden wieder nicht dargstellt - Links mit Umlauten gehen nicht usw. => keine Lösung

oder

2) ich ändere in der page-Tabelle page_title auf collation binary ... folge: Links mit Umlauten klappen nicht. Dafür ist die Fehlermeldung weg :(

Unabhängig davon:
Zudem find ich in der Bilderliste (Übersicht) wieder falsch dargestellte Umlaute - die Dateinamen mit Umlauten stimmen. Klick ich eine Datei an und komme auf die Beschreibe-Seite -> sind die Umlaute plötzlich da.

Ich werde da echt noch verrückt :( Das sch*** teil muß doch irgendwie updatebar sein? Hab gerade erst nen Forum von latin1 auf utf8 umgestellt - da mußte ich mich um nichts kümmern - lief einfach :( warum geht das beim mediawiki nicht so einfach :(


Ich hab das teil auf mehrere Arten versucht zu updaten.
Web:
* Setting: ... utf8 => hab ne latin1/utf8 gemischte DB
* Setting: ... binary => hab ne latin1/binary gemischte DB
... bei beiden Versuchen bekomme ich bei php refreshlinks.php auch später die besagte Fehlermeldung.

Shell:
* hatte schon ansätze von freundensprünge ... die komplette Datenbank ist latin1 ... aber der fehler ist trotzdem da :( ... komischerweise läuft hier php refreshlinks.php sauber durch - bringt nur nichts.


Hat jemand ne idee wie ich das Problem loswerde? Oder wie ich absolut sauber updaten kann? Bin da echt langsam am ende :( Wo UTF8 noch nicht zwang war, klappte das Updaten 1a - mit UTF8 hab ich kein update hinbekommen.

Gruß
Wuppi

PS: Quellserver hat mySQL4.0x
PPS: Testserver hat mySQL5. mysqldump mit option gestartet das zwingend charset-latin1 erstellt wird. Half aber auch nichts.

Verfasst:
von

Verfasst: 05.04.2009, 15:15
von bennos
eine suabere lösung wird es kaum geben, denn der gesamte inhalt ist im falschen zeischensatz.
Du musst jeden Inhalt aufrufen und in utf8 speicher. Manuell oder automatisch.
Eine Skript wird es dafür nicht geben. (würde mich wundern).

Das URL Problem ist im Grunde das gleiche. Latin und UTF sind nunmal unterschiedliche Zeichensätze.

Eine Lösung könnte sein.
Inhalte komplett exportieren aus der Latin version in ein XML Format oder ein Format was du mit Mediawiki wieder einlesen kannst.
Mediawiki 1.14 UTF komplett neu aufsetzen und dann die Inhalte in die Datenbank importieren.

Achte auch hier auf die unterschiedlichen Zeichensätze.

Verfasst: 09.04.2009, 14:28
von Wuppi
Hi

XML-Export gibt es - aber wohl nur für die Artikel wenn ich das richtig verstanden habe. User bleiben aussen vor. Würde dann doch bedeuten das keine Zusammenhänge mehr zwischen einem Beitrag und einem User bestehen?

Kompletter Inhalt ist ja eben nicht im falschen Zeichensatz - das scheint gemischt zu sein. Manche sachen werden sauber angezeigt. Das Upgradescript wandelt ja auch einiges in UTF8 um - nur nicht alles :(

Das muß doch möglich sein. Ich mein bei nem Forum gehts ja auch problemlos von latin1 auf utf8. Bin doch weltweit nicht der einzigste MediaWiki-Betreiber der von seinem "Heim"-Zeichensatz nach UTF8 wechseln mußte. Ok das Netz ist voll von Wikis mit Collation-Problem - aber das heißt doch nur das die auch keine Lösung gefunden haben :(

Mhh wie sähe es den aus wenn ich die DB komplett auf UTF8 umwandel. Also Datenbank exportieren, mitm tool auf utf8 konvertiere, wieder einspiele, update fahre. ... mhh wobei: das hab ich vor 2-3 Jahren schonmal erfolglos probiert. Da gingen dann trotzdem UTF8-Inhalt und UTF8-Charset keine Umlaute mehr in Links :(

*würg*

Gruß

Verfasst:
von

Verfasst: 09.04.2009, 15:52
von bennos
Du kannst es nur probieren.

Aus Erfahrung weiss ich das ich, das es scheisse ist. deshalb ist von anfang an alles gleich immer in UTF.

Verfasst: 09.04.2009, 16:48
von spacefun
Aus Erfahrung weiss ich das ich, das es scheisse ist. deshalb ist von anfang an alles gleich immer in UTF.
Da geb ich dir recht. Wobei das Problem lösbar ist.
https://forum.mysqldumper.de/die-umlaut ... t2313.html

Gruss space :wink:

Verfasst: 10.04.2009, 01:19
von bennos
sehr guter artikel.

kannte ich gar nicht obwohl ich mysqldumper nutze.

Möglicher Migrationspfad

Verfasst: 24.04.2012, 15:58
von ju_ba
Bei mir hat folgender Weg geholfen: