Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[mysql] changement de serveur avec problèm de caract(resolu)
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 12:49 am    Post subject: [mysql] changement de serveur avec problèm de caract(resolu Reply with quote

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 :evil: :evil: :evil:

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 :cry:
_________________
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
View user's profile Send private message
avendesora
Veteran
Veteran


Joined: 16 Aug 2002
Posts: 1739
Location: Betelgeuse vicinity

PostPosted: Sat Apr 22, 2006 8:54 am    Post subject: Reply with quote

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
View user's profile Send private message
_droop_
l33t
l33t


Joined: 30 May 2004
Posts: 957

PostPosted: Sat Apr 22, 2006 8:58 am    Post subject: Reply with quote

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 :
Code:
file db.dump


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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 11:07 am    Post subject: Reply with quote

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é :oops:. Je peux régler ca ou ? et je met quoi ? UTF8 ou latin1 (j'ai un clavier belge => be-latin1 :roll: 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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 11:15 am    Post subject: Reply with quote

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 :wink:

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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 12:14 pm    Post subject: Reply with quote

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
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Sat Apr 22, 2006 12:26 pm    Post subject: Reply with quote

'alute

même problème chez moi :( je cherche depuis hier soir d'où viens ce latin_swedish.ci en collation 8O
_________________
" 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 ! "
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 1:12 pm    Post subject: Reply with quote

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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 1:29 pm    Post subject: Reply with quote

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 !!! 8O 8O 8O 8O 8O 8O 8O 8O 8O 8O 8O 8O 8O 8O 8O
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Namur - Belgium

PostPosted: Sat Apr 22, 2006 3:56 pm    Post subject: Reply with quote

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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 4:13 pm    Post subject: Reply with quote

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
View user's profile Send private message
avendesora
Veteran
Veteran


Joined: 16 Aug 2002
Posts: 1739
Location: Betelgeuse vicinity

PostPosted: Sat Apr 22, 2006 4:45 pm    Post subject: Reply with quote

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
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772

PostPosted: Sat Apr 22, 2006 6:57 pm    Post subject: Reply with quote

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
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Sat Apr 22, 2006 7:16 pm    Post subject: Reply with quote

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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 9:24 pm    Post subject: Reply with quote

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 :evil:

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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 10:25 pm    Post subject: Reply with quote

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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sat Apr 22, 2006 11:08 pm    Post subject: Reply with quote

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 :cry:
_________________
Mon MediaWiki perso : http://pix-mania.dyndns.org
Back to top
View user's profile Send private message
avendesora
Veteran
Veteran


Joined: 16 Aug 2002
Posts: 1739
Location: Betelgeuse vicinity

PostPosted: Sun Apr 23, 2006 8:53 am    Post subject: Reply with quote

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
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sun Apr 23, 2006 1:36 pm    Post subject: Reply with quote

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 :cry:

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
View user's profile Send private message
boozo
Advocate
Advocate


Joined: 01 Jul 2004
Posts: 3193

PostPosted: Sun Apr 23, 2006 10:04 pm    Post subject: Reply with quote

'alute

bon j'ai corrigé chez moi... c'est bien mysql qui était en cause lors de l'upgrade 4.1.14 -> 4.1.14-r1 les charset par "default" dans my.cnf sont passés de latin1 à utf8 chez moi d'où mon pb avec mon dump en iso

bref çà m'a gonflé alors j'ai modifié mon skull spip pour le rendre dépendant de la base mysql comme çà c'est bon pour le futur et si je dump vers un serveur différent :wink: j'en ai profité pour corriger les erreurs résiduelles des caractères accentués dans les pages html pour les rendre indépendant du charset et voilà :)

Bon courage loopx mais je te conseille de lâcher l'affaire et de faire comme moi... manuellement
_________________
" 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 ! "
Back to top
View user's profile Send private message
loopx
Advocate
Advocate


Joined: 01 Apr 2005
Posts: 2787
Location: Belgium / Liège

PostPosted: Sun Apr 23, 2006 11:54 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum