Problème d'encodage des caractères dans la base de données
Un article de Typo3 CMS / Documentation Typo3 / Support Typo3.
Sommaire |
[modifier] Introduction
Au cours de nos différentes livraison, nous nous sommes confronté à des problèmes d'encodage dans la base de données, provenant notamment des différences de version de mysql.
Cette documentation peut donc être utile pour toutes les personnes ayant des soucis similaires mais ne garantit pas la résolution systématique des problèmes d'encodage.
[modifier] Export de la base source
L'export de la base de donnée se fait via la commande linux mysqldump :
mysqldump -u root -p -n --compatible=mysql323 --databases nom_de_la_base > dump.sql
Explication des options cette commande :
-u permet de définir l'utilisateur, ici "root".
-p demande le mot de passe de l'utilisateur.
-n (ou --no-create-db) permet de ne pas exporter l'instruction "create database".
--compatible permet de spécifier vers quelle base on va importer le dump. (ici mysql323 signifie que c'est un dump pour la version 3.23 de mysql, à noter que cette version de mysql de supporte pas l'interclassement et donc risque de créer des erreurs lors de la tentative de création de table via le dump sql). Les bases possibles sont : mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb
--databases permet de spécifier la liste des bases séparées par des virgules que l'on veut exporter.
--add-drop-table
Sur des plateformes mutualisés ou avec des droits restreints le lock peut raler avec --skip-lock-tables ça passe mieux
[modifier] Récupération de l'export sur le serveur cible
Sur le serveur cible maintenant, vous pouvez récupérer votre export sql via la commande wget
wget url_serveur_source
[modifier] Import du dump sql dans la base cible
Finalement pour l'import du fichier dans la base, on utilise la commande mysql :
mysql -u root -p base_cible < dump.sql
les options -u et -p sont identiques à celles de la commande mysqldump.
[modifier] Remarques
NB : Il faut faire attention à ne pas essayer d'ouvrir ou modifier les fichiers sous windows pour ne pas risquer de modifier l'encodage de base du fichier.
