Nous sommes très heureux d'annoncer la collaboration du Colibri et du Papillon!

Ekopedia:Solution:Problème majeur sur la base de donnée SQL francophone

Un article de Ekopedia, l'encyclopédie pratique.

Cette page vise à expliquer comment résoudre notre problème de charset sur la base de donnée francophone Ekopedia (logiciel Mediawiki).

Sommaire

Attention

Notre solution a peut de chance de pouvoir être utilisée tel-quel, mais elle peut insprirer d'autres solutions à des problèmes similaires.

Notre problème

En 2004 ou 2005, j'ai fait un très très mauvais choix durant une mise à jour: $wgDBmysql5 = true; (documenté comme: Experimental charset support for MySQL 4.1/5.0).


Les symptômes

  • Si nous éditions une page et ajoutions un caractère comme "φ", durant la sauvegarde, il y avait une conversion qui, de manière transparente, transformait (corrompt) le caractère en un point d'interrogation (?).
  • Il était possible de détecter le problème lorsqu'on ajoutait certaines extensions (comme TeX). Message d'erreur: "Illegal mix of collations".


Notre solution

Un sympathisant du projet Ekopedia (Szabolcs Pap) a fait un script pour convertir la base de donnée dans le bon charset.

Voici le script:

#!/bin/sh

TEMP_DIR=/tmp/
DB_NAME=ekopediafr
DB_USER=ekopedia
DB_PASS=XXXXXXXXXXX

echo "start...";
echo "dumping database (fr)\n"
mysqldump $DB_NAME --default-character-set=utf8 -u $DB_USER -p$DB_PASS > $TEMP_DIR/allnew.sql
echo "dump is ready\n";

echo "create first sed to change UTF8\n";
sed -i 's/\/\*\!40101 SET NAMES utf8 \*\/\;/\/\*\!40101 SET NAMES latin1 \*\/\;/g' $TEMP_DIR/allnew.sql

echo "create second sed to change UTF8\n";
sed -i 's/SET character_set_client = utf8;/SET character_set_client = latin1;/g' $TEMP_DIR/allnew.sql

echo "importing into new database\n";
cat $TEMP_DIR/allnew.sql|mysql $DB_NAME --default-character-set=latin1 -u $DB_USER -p$DB_PASS

echo "DONE\n";

Après l'avoir appliqué, je fus en mesure de passer la variable "$wgDBmysql5" à "false" dans LocalSettings.php.

Notre problème est maintenant réglé!


Commentaire

J'espère que cette page pourra aider quelqu'un. --jluc 20 avril 2009 à 21:41 (EDT)


Créer un livre