Discussion Ekopedia:Problème majeur sur la base de donnée SQL francophone
Un article de Ékopédia, l'encyclopédie pratique.
[modifier] Quelques Q/R qui peuvent aider
A) qu'appellez-vous "quelque peu corrompue au niveau de l'encodage de caractères" ?
La cause du problème fut causé, j'en suis pas mal certain, lors d'une mise à jour de l'application Mediawiki. Il me fut posé la question d'utiliser ou non "$wgDBmysql5" (http://www.mediawiki.org/wiki/Manual:$wgDBmysql5 aussi appelé Experimental charset support for MySQL 4.1/5.0.). J'ai choisi true j'ai commencé à détecter des problèmes sur un article : http://fr.ekopedia.org/Nombre_d%27or
Étrangement, tous les signes "φ" avaient disparus, remplacés par des "?" (on utilise maintenant le code html φ pour les afficher). Également, lorsque j'essaye d'installer l'extension TeX, j'ai comme message d'erreur: "Illegal mix of collations".
En recherchant "wgDBmysql5" sur google je suis tombé sur un vieux message que j'avais envoyé et qui donne d'autres précisions: http://markmail.org/message/h532x6l2bxjvbg3d
1) c'est une probabilite ou ca peut se voir ?
2) avez-vous essayer de reparer ce pb en intervenant sur les donnees pour les changer ? exemple en faisant des update TABLE_NAME set COLUMN_NAME = replace(COLUMN_NAME,"á","á"); ou carrement avec des :%s/x/y/g dans vi dans un export de backup avant de reloader
J'ai essayer de travailler avec iconv et j'ai aussi essayé avec vi, mais le sql fait environ 500Mo et vi a des diffcultés a le digérer!...
En fait je dois avouer que je me suis régulièrement sentis dépassé dans cette histoire. Je suis assez bon sysadmin, mais je n'ai rien d'un DBA ni d'un programmeur...
B) verifier l'adequation collation/donnees:
1) si vous utilisez la meme database pour la version FR et EN
Oui c'est certain que c'est la meilleur chose à faire! Nous avons heureusement d'autres bases, plus fraiches et saines!
2) pour chacune de ces bases (ou la seule base), faite apparaitre la collation:
use LENOMDELABASE
show variables like "character_set_database";
show variables like "collation_database";
Exemples de résultats (j'ai supprimé les lignes inutiles):
mysql> use ekopediapl
mysql> show variables like "character_set_database";
| character_set_database | latin1 |
mysql> show variables like "collation_database";
| collation_database | latin1_swedish_ci |
mysql> use ekopediafr
mysql> show variables like "character_set_database";
| character_set_database | latin1 |
mysql> show variables like "collation_database";
| collation_database | latin1_swedish_ci |
ekopediafr (francophone), ekopediapl (polonais).
Donc les résultats sont égaux pour ce point.
Aussi, si je compare la configuration de Mediawiki PL (qui n'a pas de problème d'encodages Dieu merci...) et FR, je remarque ceci pour PL:
$wgDBTableOptions = "TYPE=InnoDB";
$wgDBmysql5 = false;
alors que FR est encore (partiellement semble-il... mysqlhotcopy ne souhaitant pas marcher) en MyISAM (pas de définition InnoDB? et $wgDBmysql5 = true;
[modifier] Serveur de Tests
- Un dump de la base de donnée fr est accessible ici: http://208.78.101.19/ekopediafr.sql
- Un dump de la base de donnée pl (non corrompue) est accessible ici: http://208.78.101.19/ekopediapl.sql
Des tests sont en cours sur http://fr-dev.ekopedia.org et http://pl-dev.ekopedia.org