Sauvegarde et restauration MySQL en UTF8

Problème d'encodage UTF8

Encodage, quand tu tiens...

L'utilisation de sauvegardes de base de données MySQL nécessite quelques précautions au sujet de l'encodage des caractères.

Depuis la version 5 de MySQL, le format par défaut des tables est passé du latin-1 à l'UTF8.
Cependant, la commande en ligne mysql conserve l'encodage par défaut en latin-1 des versions précédentes.

Prenons l'exemple d'une sauvegarde faite par la commande mysqldump :

mysqldump --opt --force --user=root --password=password  --databases test \
> mysql-test-`date +%y%m%d`.sql ;

Jusqu'à la version MySQL 4, la ligne de commande suivante assurait la restauration :

mysql -u root -p password < mysql-test-080227.sql

Depuis MySQL 5, la restauration doit être décomposée. Par exemple :

mysql -u root -p password

Puis, on change l'encodage de mysql et l'on restaure la sauvegarde :

SET NAMES utf8;
source ./mysql-test-080227.sql

That's all folks