WikiMysqlMigratie

Uit Cncz
Ga naar: navigatie, zoeken

Mediawiki mysql migratie

Bij de migratie van de mysql database van mediawiki van een mysql4 naar een mysql5 server kan het gebeuren dat door verschillende character encodings de gemigreerde database pagina titels fout weergeeft en/of dat links naar titels met diacritische tekens niet meer werken. Dit is het gevolg van het feit dat mediawiki utf8 strings opslaat in latin1 tabellen. Bij de migratie kan het dan op twee momenten misgaan, bij de mysqldump en bij het importeren in de mysql5 server. Om dit te voorkomen zijn er twee zaken om op te letten, gebruik de --default-character-set=latin1 optie bij mysqldump. Dus bijv.:

/usr/local/mysql-4/bin/mysqldump --default-character-set=latin1 --allow-keywords --quote-names  --add-drop-table  -p -h localhost database >database.sql

Het resultaat is een dump met utf8 data maar met table create statements waarin nog default charset en collate op latin1 staat. Als je deze vervolgens zomaar importeert in een mysql5 server met default charset en collate utf8 vindt er alsnog een conversie plaats. Om dit te voorkomen substitueer je in de sql dump "=latin1" door "=utf8". Vervolgens kun je het sql file importeren.

cat database.sql | sed -e "s/CHARSET=latin1 COLLATE=latin1/CHARSET=utf8 COLLATE=utf8/g' | mysql  -h localhost -u root database -p