View previous topic :: View next topic |
Author |
Message |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 12:49 am Post subject: [mysql] changement de serveur avec problèm de caract(resolu |
|
|
Bonsoir, je viens de faire un changement de serveur (pour la base de donnée mysql) et je rencontre quelque souci:
j'ai utilisé la méthode mysqldump pour effectuer la migration.
J'ai replacé les droits et réglé le firewall pour les accès.
Maintenant, (pour le forum), j'ai des problèmes d'encodage (heu, les é è à etc... s'affiche pas comme il faut). Je sais pas d'ou ca pourrais provenir. Peut etre du forum (qui ne fonctionne pas plus que ca, car pour le moment, plus moyen d'envoyer un message etc... il fait plein d'erreur, je vais surement le réinstaller).
Peut etre n'y a t'il pas besoin
EDIT: je pense que c'est du au fichier que génère le mysqldump. Peut etre à cause du transfert ? (j'ai utilisé sftp pour ca).
EDIT2: j'ai comparé le fichier (sur le serveur de depart et sur le serveur de destination) et il sont identique (les é è à etc sont toujours bien présent). Par contre, tout mes sites web (qui vont chercher les données via la base mysql) n'affiche rien de correct
Qu'est ce que ca veux dire donc ! super pas cool ce mysqldump
EDIT3: voici un select qui provient directement de mysql:
(avant)
| 12 | 1142987694 | loopx | | Ouaips, ben c'est surement pour ca qu'il n'a pas été scanné. Ce serait mieux que tu fasses un ftp tout le temps allumé (quand ton pc est allumé) mais avec un débit plus faible si c'est ca qui te dérranges...
(après)
| 12 | 1142987694 | loopx | | Ouaips, ben c'est surement pour ca qu'il n'a pas été scanné. Ce serait mieux que tu fasses un ftp tout le temps allumé (quand ton pc est allumé) mais avec un débit plus faible si c'est ca qui te dérranges...
Au passage, je suppose que c'est à cause de ca que mon forum phpbb ne fonctionne plus  _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org
Last edited by loopx on Sun Apr 23, 2006 11:55 pm; edited 3 times in total |
|
Back to top |
|
 |
avendesora Veteran


Joined: 16 Aug 2002 Posts: 1739 Location: Betelgeuse vicinity
|
Posted: Sat Apr 22, 2006 8:54 am Post subject: |
|
|
Au moment de la création de la base ou quand tu importes le mysqldump, est-ce que tu as
moyen de spécifier un encoding? A vu de nez, ton deuxième select montre que tu as des
chaines de caractères en UTF-8 dans ta base, mais qu'elle les interprète comme un jeu de
caractères normal (Latin1 probablement). |
|
Back to top |
|
 |
_droop_ l33t

Joined: 30 May 2004 Posts: 957
|
Posted: Sat Apr 22, 2006 8:58 am Post subject: |
|
|
Bonjour,
Les deux serveurs mysql ne doivent pas utiliser le même encodage par défaut.
Si tu es pret à refaire l'import de ta base tu peux modifier l'encodage de ton dump...
Il faut trouver l'encodage par défaut de ton serveur :
Code: | SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%'; |
Et l'encodage de ton fichier :
Après tu peux essayer de le convertir (avant de le réimporter), exemple :
Code: | iconv -f iso88859 -t utf8 db.dump |
Tu peux aussi modifier ta base réimportée pour lui dire quel charset utiliser :
Code: | ALTER DATABASE db_name CHARACTER SET charset_name |
Plus d'infos dans ce chapitre de la documentation mysql.
Bon courage. |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 11:07 am Post subject: |
|
|
Oki, sur l'ancien serveur:
Code: |
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.14 sec)
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
| rows in set (0.00 sec)
et sur le nouveau:
Code: |
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.08 sec)
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
|
Bon ben, t'as complètement raison, je sais pas ce qui s'ai passé . Je peux régler ca ou ? et je met quoi ? UTF8 ou latin1 (j'ai un clavier belge => be-latin1 sais pas si ca a avoir).
Je vais devoir refaire mon mysqldump. Comment dois-je procéder pour vider la nouvelle base de donnée ? _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 11:15 am Post subject: |
|
|
Pour le fichier généré:
Ancien serveur:
mouh loop # file data_mysql.sql
data_mysql.sql: ASCII English text, with very long lines
Nouveau serveur:
mouh loop # file data_mysql.sql
data_mysql.sql: ASCII English text, with very long lines
Donc c'est pareil
Bon, pour résoudre mon problème, il me faut:
- vider ma base de donnée
- régler l'encodage dans la bd (heu, comment ?)
- réimporter
Pour le réglage, je sais pas comment faire, mais je sais encore moin quel "langage/encodage" utiliser. Qu'est ce qui se fait en général ?
EDIT: vider la base de données (enfin, les)... : drop database nom_base; (une à une)
Je reimporte mes données (car il y en a des nouvelles)
Je vais essayer de modifier le fichier, et de ne pas toucher au config de mysql: iconv -f latin1 -t utf8 data_mysql3.sql > data_mysql4.sql _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 12:14 pm Post subject: |
|
|
Mert, c'est une catastrophe... Je viens de vérifier sur un 3ème serveur (le mien, à la maison) et il a les meme valeur (type d'encodage) que l'ancien serveur.... Je sais pas du tout ce qu'il sais passé lors de l'install de ce serveur pour qu'il soit configuré ainsi... Donc, il me faut changer la configuration de la base de donnée. Je vais chercher comment faire.
EDIT: le premier test (essais de conversion du fichier avant l'importation) n'a pas fonctionné. Toujours le meme problème. _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
boozo Advocate


Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 1:12 pm Post subject: |
|
|
J'ai trouvé d'ou viens la mauvaise config de mysql:
faut aller changer tout les utf8 en latin1 dans /etc/mysql/my.cnf
EDIT: j'ai re-importé mes données, elles sont bonne correct maintenant  _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 1:29 pm Post subject: |
|
|
Bon, c'est pas résolu, j'en ai marre, c'est n'importe quoi !
Maintenant, la base est bien encodé (je viens d'aller voir manuellement), et il y a bien des é è etc ... et pas des trucs bizarre.
Mais mes sites web sont toujours mal encodé !!!!
J'ai vérifier les configs avec les deux commandes (pour mysql) et elle sont bonne. Je comprend pas. Ca proviendrai de apache ?
Voilà ce que j'ai sur le nouveau serveur:
Code: |
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.18 sec)
mysql> SHOW VARIABLES LIKE 'collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
| 12 | 1142987694 | loopx | | Ouaips, ben c'est surement pour ca qu'il n'a pas été scanné. Ce serait mieux que tu fasses un ftp tout le temps allumé (quand ton pc est allumé) mais avec un débit plus faible si c'est ca qui te dérranges...
|
Et ca ne marche pourtant pas !!!  _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
PabOu Veteran


Joined: 11 Feb 2004 Posts: 1088 Location: Namur - Belgium
|
Posted: Sat Apr 22, 2006 3:56 pm Post subject: |
|
|
t'as essayé de garder ta nouvelle base de données en utf8 (par défaut) et de faire Code: | iconv -f ISO8859-15 -t UTF-8 | sur ton fichier .sql avant de l'importer ? _________________ Mangez du poulet ! |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 4:13 pm Post subject: |
|
|
Non, j'ai abandonné cette idée. J'ai reconfigurer mon nouveau deamon mysql pour qu'il soit comme avant, càd en latin1. Ca fonctionne bien, juste que les pages web (qui sont issue de la bd, comme le forum phpbb) ne s'affiche plus comme avant!!!! Fini les é è à etc... Je ne comprend vraiment pas d'ou ca peu venir vu que la bd est maintenant bien configurée  _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
avendesora Veteran


Joined: 16 Aug 2002 Posts: 1739 Location: Betelgeuse vicinity
|
Posted: Sat Apr 22, 2006 4:45 pm Post subject: |
|
|
Ca peut venir de la config de ton forum. Il est possible que lui aussi considère
que par défaut c'est de l'unicode que tu transmet. Si c'est ca qu'il dit au browser,
l'affichage sera pas correct. (Essaye de regarder s'il y a un encoding spécifié dans
les pages web générées.)
Et l'option de convertir en UTF-8 et d'importer dans une base unicode est meilleure
que de rester en Latin1. Si jamais tu veux afficher d'autres langues (genre grèque,
turc, polonais, hongrois, géorgien, ....), tu ne pourras pas le faire avec tes données
stockées en Latin1. |
|
Back to top |
|
 |
geekounet Bodhisattva


Joined: 11 Oct 2004 Posts: 3772
|
Posted: Sat Apr 22, 2006 6:57 pm Post subject: |
|
|
Il se peut que ça vienne d'Apache, j'avais un problème similaire avec mes petites pages persos. Est-ce que tu as cette ligne dans ton httpd.conf ? :
Code: | AddDefaultCharset ISO-8859-1 |
Normalement elle y est par défaut. Si oui commente là, le browser utilisera l'encodage donné par la page web
Moi, j'ai résolu mes pb d'encodage comme ça  |
|
Back to top |
|
 |
boozo Advocate


Joined: 01 Jul 2004 Posts: 3193
|
Posted: Sat Apr 22, 2006 7:16 pm Post subject: |
|
|
comme je l'ai dit, j'ai le même pb avec un site spip... j'ai testé vos manip mais c'est pareil
Je pense qu'un upgrade de mysql est en cause car je n'avais aucun pb avant
désormais il me bascule les tables en latin1_swedish.ci d'où ce mauvais affichage des é,è,à,... je pense
le charset de mon squelette est en ISO-8859-1 et je ne souhaite pas le passer en utf8 alors j'ai bien essayer de modifier my.cnf comme loopx et de forcer la conversion avec iconv mais rien n'y fait
je vais tester en modifiant httpd.conf pour voir mais je ne comprends pas d'où provient le pb... jusqu'a récemment tout fonctionnait impeccable tel quel !
[Edit] non ça ne change rien malheureusement _________________ " Un psychotique, c'est quelqu'un qui croit dur comme fer que 2 et 2 font 5, et qui en est pleinement satisfait.
Un névrosé, c'est quelqu'un qui sait pertinemment que 2 et 2 font 4, et ça le rend malade ! "
Last edited by boozo on Sun Apr 23, 2006 9:17 am; edited 2 times in total |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 9:24 pm Post subject: |
|
|
pierreg wrote: | Il se peut que ça vienne d'Apache, j'avais un problème similaire avec mes petites pages persos. Est-ce que tu as cette ligne dans ton httpd.conf ? :
Code: | AddDefaultCharset ISO-8859-1 |
Normalement elle y est par défaut. Si oui commente là, le browser utilisera l'encodage donné par la page web
Moi, j'ai résolu mes pb d'encodage comme ça  |
Je viens de tester, mais ca ne change rien
C'est carément incroyable, 4 site nické, merci mysql
Je comprend pas, jvais devoir modifier tout à la main ? Mais si ma bd est bonne, ca changerea pas grand chose. Sais plus quoi faire  _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 10:25 pm Post subject: |
|
|
bon, j'ai remis les configs en utf8. J'essaye désespérement de récuperer ma bd avec des é è à en utf8 mais rien a faire... J'ai toujours des caractères pourri => dans les sites aussi.
Je pense que si j'arrive à convertir mon fichier en utf8, ben ce sera gagné... Mais la commande marche pas !
J'ai déjà essayer le from avec (iconv -f) :
latin1
iso8859-15
iso8859-1
Code: |
stargate loop # file data_mysql2.sql
data_mysql2.sql: ASCII English text, with very long lines
stargate loop # iconv -f ASCII -t UTF-8 data_mysql2.sql > data_mysql3.sql
iconv: illegal input sequence at position 189732
|
pfffffffffffffffffffffffffffffff rien a faire ! _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sat Apr 22, 2006 11:08 pm Post subject: |
|
|
Et si je change l'encodage à l'exportation de la bd, ca pourrais peut etre fonctionner :
mysqldump --help
Code: |
Variables (--variable-name=value)
and boolean options {FALSE|TRUE} Value (after reading options)
--------------------------------- -----------------------------
all TRUE
all-databases FALSE
add-drop-database FALSE
add-drop-table TRUE
add-locks TRUE
allow-keywords FALSE
character-sets-dir latin1
comments TRUE
compatible (No default value)
compact FALSE
complete-insert FALSE
compress FALSE
create-options TRUE
databases FALSE
default-character-set latin1
|
EDIT: j'ai testé ca:
Code: |
mouh loop # mysqldump -p --quick --character-sets-dir=utf8 --default-character-set=utf8 --all-databases > /home/loop/data_mysql21.sql
|
Toujours aussi foireux  _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
avendesora Veteran


Joined: 16 Aug 2002 Posts: 1739 Location: Betelgeuse vicinity
|
Posted: Sun Apr 23, 2006 8:53 am Post subject: |
|
|
loopx wrote: |
Code: |
stargate loop # file data_mysql2.sql
data_mysql2.sql: ASCII English text, with very long lines
stargate loop # iconv -f ASCII -t UTF-8 data_mysql2.sql > data_mysql3.sql
iconv: illegal input sequence at position 189732
|
|
C'est pas de l'ASCII ton fichier, c'est du ISO-8859-1. Essaye avec iconv -f ISO-8859-1. |
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sun Apr 23, 2006 1:36 pm Post subject: |
|
|
J'ai déjà testé, et ca n'a pas fonctioné. Alors la, on essaye de mettre phpmyadmin... Et sur le nouveau serveur, on a ceci comme information sur la page web de phpmyadmin:
Code: |
L'extension PHP mbstring n'a pu être localisée et il semble que vous utilisiez un jeu de caractères multi-octets. Sans cette extension, phpMyAdmin est incapable de gérer correctement les caractères et il peut en résulter des problèmes.
|
Alors, voilou, j'ai pas encore compilé ce php comme il fallait pourtant il devrait etre bon
EDIT: j'ai trouvé: faut activer le use "cjk" pour dev-lang/php.
EDIT2: non, c'est pas ca
EDIT3: il semblerait que c'est le use "unicode" qu'il faut mettre maintenant... _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
boozo Advocate


Joined: 01 Jul 2004 Posts: 3193
|
|
Back to top |
|
 |
loopx Advocate


Joined: 01 Apr 2005 Posts: 2787 Location: Belgium / Liège
|
Posted: Sun Apr 23, 2006 11:54 pm Post subject: |
|
|
Ici, c'était à cause de apache
Il fallait forcer la ligne qu'on m'avait dis de commenter (en mettant utf8 et pas iso8859-1). _________________ Mon MediaWiki perso : http://pix-mania.dyndns.org |
|
Back to top |
|
 |
|