IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

migration de base de donnée problème d'encodage et de jeux de caractères


Sujet :

MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Points : 9
    Points
    9
    Par défaut migration de base de donnée problème d'encodage et de jeux de caractères
    Bonjour,

    Voici mon petit soucis, je souhaite faire passer la base de données (en iso8859-1) d'une application web (wikka wikki) sur un autre serveur. Lors des tests sur les pages de l'applications web les "è" par exemple deviennent des "é". J'avais déjà eu ce problème lors d'une précédente migration (que j'avais réussi à résoudre ) mais là je n'ai pas réussi à trouver la solution. Voici la procédure que j'ai suivie:

    La base mysql à migrer est sur une debian (UTF-8):
    Sauvegarde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump --default-character-set=latin1 ma_base >sauvegarde.sql
    Si je vérifie l'encodage du fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    file -i sauvegarde.sql
    : text/plain; charset=iso-8859-1
    Donc c'est bon

    J'envoi le fichier via un scp vers l'autre système (Archlinux -> UTF-8):
    je reteste le fichier au cas ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    file -i sauvegarde.sql
    : text/plain; charset=iso-8859-1
    Donc c'est encore bon

    Je crée une base de donnée avec l'encodage latin1 par défaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE DATABASE ma_base DEFAULT CHARACTER SET "latin1" COLLATE latin_swedish_ci;
    J'importe les données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u root -p  wikka --default-character-set=latin1 < sauvegarde.sql
    Et pourtant j'ai toujours ce problème d'encodage à l'affichage des pages web ( j'ai pourtant ça dans le header <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">)

    Si dans le doute je vérifie les encodages de la base:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SHOW FULL COLUMNS FROM wikka_links;
    +----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
    | Field    | Type        | Collation         | Null | Key | Default | Extra | Privileges                      | Comment |
    +----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
    | from_tag | varchar(75) | latin1_swedish_ci | NO   | PRI |         |       | select,insert,update,references |         |
    | to_tag   | varchar(75) | latin1_swedish_ci | NO   | PRI |         |       | select,insert,update,references |         |
    +----------+-------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
    2 rows in set (0.00 sec)
    Je vois que la base est bien en latin1.

    Donc voila, si quelqu'un pouvait me dire ou je me suis planté, ça m'aiderais bien.

    Merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Bon,

    non seulement, apparement ça ne passionne pas grand monde, mais en plus j'ai fait un test sur mon navigateur en le forçant à lire ma page en UTF et ... tout s'affiche correctement.

    Je suis largué toutes mes données sont en iso8859-1 mais j'arrive à les voir en UTF-8.

    Alors est ce que c'est lié à la configuration de l'encodage pour les clients (apparement on peut les paramètrer) qui par défault seraient en UTF-8. Ce qui ferait que quand l'appli se connecte pour lire les données, elles les récupère en UTF-8???

    Ou alors mon problème est ailleurs (apache/php)?

    Merci

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Bon,

    je rajoute une information qui peut être sera utile: Les serveurs n'ont pas la même configuration , à ma grosse surprise le serveur mysql sous debian squeeze n'est pas en UTF-8 (par défaut je n'ai fait aucune modification)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mysql  Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (i486) using readline 6.1
     
    Protocol version:	10
    Connection:		Localhost via UNIX socket
    Server characterset:	latin1
    Db     characterset:	latin1
    Client characterset:	latin1
    Conn.  characterset:	latin1
    UNIX socket:		/var/run/mysqld/mysqld.sock
    Uptime:			7 hours 40 min 40 sec
    Contrairement au serveur mysql sous archlinux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mysql  Ver 14.14 Distrib 5.5.12, for Linux (x86_64) using readline 5.1
     
    Protocol version:	10
    Connection:		Localhost via UNIX socket
    Server characterset:	utf8
    Db     characterset:	utf8
    Client characterset:	utf8
    Conn.  characterset:	utf8
    UNIX socket:		/var/run/mysqld/mysqld.sock
    Uptime:			39 min 17 sec
    Donc nouvelle question:
    est ce que l'origine de mon problème ne viendrait pas de la?
    Si oui suis je obligé de passer mon serveur mysql en ISO-8859-1 sur Archlinux, l'option default-character-set ne devrait elle pas normalement prendre le pas sur la configuration générale et me renvoyer des données en ISO-8859-1?

    Merci

Discussions similaires

  1. [Wamp] Migration d'une base de données (Problème d'affichage des tables)
    Par betadev dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 17/02/2013, 12h10
  2. Réponses: 0
    Dernier message: 23/11/2009, 12h38
  3. probleme de migration de base de donnée
    Par maxeur dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 14/01/2008, 09h37
  4. Migration de bases de données de My SQL vers SQL Server 2005
    Par thvphan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/04/2006, 13h34
  5. Migration de Base de données SQLServer -> Oracle
    Par karamazov994 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/07/2005, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo