Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 30/04/2009, 11h38   #1
Membre habitué
 
Avatar de 4rocky4
 
Inscription : janvier 2008
Messages : 507
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2008
Messages : 507
Points : 132
Points : 132
Par défaut Problème d'accents avec MySQL Migration Toolkit

Bonjour tout le monde,

J'ai vu sur le forum qu'il y a pas mal de problèmes sur les accents avec MySQL. J'ai effectué pas mal de recherches sur le forum et ailleurs, j'ai également consulté ce tutoriel mais je n'arrive pas à résoudre mon problème.

Je suis en train de migrer une base SQL Server 2005 en MySQL. Pour cela, j'utilise l'outil MySQL Migration Toolkit mais je n'arrive pas à gérer les accents.
Je suppose que la solution se trouverait lors de cette configuration.

J'ai essayer de mettre différentes collations comme utf8_unicode_ci, utf8_bin, latin1_general_cs etc ...

Lorsque je met UTF8, la migration se fait correctement mais dans la base de données, les accents comme "'é, è, ü ..." sont remplacés par un caractère bizarre. Pourtant, si je fais un simple INSERT INTO avec une valeur contenant un accent, il est pris sans problème.

Lorsque je met LATIN1, j'obtiens une erreur quand un accent est présent dans une des valeurs de la table et aucune donnée n'est migrée dans cette table:
Code Script lors de la création des objets :
1
2
3
4
5
 
`Test_dbo`.`T_LANG`
      ------------------------------------
          Incorrect string value: '\xEF\xBF\xBD' FOR COLUMN 'LIBELLE' at row 179
          0 row(s) transfered.

Comme vous avez pu vous en rendre compte, ma question est toute simple
Comment migrer ma base SQL Server 2005 vers MySQL en gérant les accents ?

edit : Cela vient du type de données
__________________
"J'glande pas ! Ça compile ..."

4rocky4
- Un con qui marche ira plus loin q'un intellectuel assis -

Dernière modification par 4rocky4 ; 03/06/2009 à 11h57.
4rocky4 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2009, 21h42   #2
Invité régulier
 
Inscription : avril 2009
Messages : 14
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 14
Points : 8
Points : 8
Bonjour,

J'ai rencontré exactement le même problème. J'ai trouvé la solution suivante, qui fonctionne parfaitement :

Dans la fenêtre "Source Database", activer le bouton "Advanced" et compléter le champ "Connection string" avec :
jdbc:jtds:sqlserver://server:1433/database;user=user;password=password;useUnicode=true;domain=

Dans la fenêtre "Target Database", activer le bouton "Advanced" et compléter le champ "Connection string" avec :
jdbc:mysql://server:3306/?user=user&password=password&useServerPrepStmts=false&useUnicode=true

,en remplaçant bien sur "server" et "database" par leurs valeurs respectives.

Ensuite, ne pas modifier les options qui permettent de changer l'encodage des caractères : les valeurs par défaut font l'affaire. Et voilà !

(cfr. http://www.leinadium.com/code/mysql-...to-mysql-utf8/)

Dernière modification par huskn ; 11/08/2009 à 22h54.
huskn est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 05h52.


 
 
 
 
Partenaires

Hébergement Web