Forum CMS Made Simple FR

Version complète : [Sauvegarde BDD] Module Mysql Dump & encodage
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

Lianodel

Citation :Version du CMS: 1.7.1 en Local / WAMP
Version du CMS: 1.5.3 en ligne / OVH
Bonjour,

Je cherche à faire une sauvegarde/exportation de ma BDD via un module (donc pas manuellement), j'ai choisi Mysql Dump qui me semblait le plus approprié et le plus récent. Cependant, j'ai un problème d'encodage. J'exporte en UTF-8, ma bdd étant en utf8-general, mais il me sort des pour les "à" et ça ne m'affiche pas la suite du texte. Et ça ne le fait que pour le "à" et pas pour les autres caractères.

Paramètres pour Mysqldump : --opt --verbose --compatible=mysql40 --default-character-set=utf8

Paramètres de restauration : --default-character-set=utf8

J'ai cherché sur l'ami google, j'ai trouvé quelques trucs, j'ai essayé l'export en latin1 ou encore d'encoder en utf8 (sans BOM) ou autre avec un éditeur de texte mais sans succès...

Je pensais m'orienter vers d'autres modules mais bon, ils datent de 2006 et je ne sais pas s'ils sont de qualité (Database Backup, Mass Mover, ...). J'aurais bien aimé rester sur Mysql Dump qui me parait assez facile d'utilisation pour l'utilisateur.

J'ai voulu tester MySQLManager mais je n'ai pas pu le mettre en place car il n'est pas disponible en XML et je n'ai pas accès au FTP. J'ai aussi voulu voir pour DLDatabaseManager mais c'est encore une version expérimentale, donc je préfère éviter...

Alors si quelqu'un a une idée ou sinon un autre module efficace, je suis preneur Smile.

Edit :

J'ai essayé des trucs pendant tout ce temps et j'ai rien trouvé qui règle le problème qui ne semble pas être un bête problème d'encodage vu qu'il n'y a que le "à" qui semble poser problème (noter la récurrence du mot 'problème' qui exprime bien mon désarroi...).

J'ai testé de modifier le config avec les différentes valeurs :
$config['locale'] ='fr_FR.utf-8';
$config['set_names'] = true;

Mes configurations d'encodage étant bien :

$config['default_encoding'] = 'utf-8';
$config['admin_encoding'] = 'utf-8';

J'ai aussi testé les différentes méthodes dites sur ces liens qui se rapproche du problème :
http://mathieu.agopian.info/blog/2010/03...vers-utf8/
http://forum.alsacreations.com/topic-17-33218-1.html

Et j'en passe...

Peut-être la migration de CMSMS 1.5.3 à 1.7.1 y est pour quelque chose ou je dois oublier un truc... Si ça intéresse quelqu'un...

Lianodel

Bonjour,

J'ai déjà vu tout ça et je pense pas que ce soit la même chose, vu que mes accents marchent bien sauf pour les "à" en plus j'ai déjà tester la solution :

Citation :Il suffit de modiifier l'encodage du fichier *.sql avec un éditeur comme Notepad++ par exemple
Et pour la solution du lien http://forum.ovh.com/showthread.php?t=11057, ça ne me convient pas et comme je le disais, je ne peux pas accéder au FTP.

J'aimerais que les utilisateurs puissent eux-même faire des sauvegardes et backup, facilement.

Ou alors, j'ai loupé quelque chose...

De plus, j'ai remarqué qu'il n'y avait pas que les "à" qui posait problème, il décide de mettre des à des endroits improbable, à la place de certains espaces avant les ponctuations...

athena_pallas

C'est quel hébergement ? Je viens de tester avec toutes les dernières versions (CMS 1.7.1, MysqlDump 1.2.4) sur un hébergement pro et tout fonctionne comme sur des roulettes.
Je ne serais pas autrement étonnée qu'il s'agisse d'un problème consécutif à la migration.

alphanono

De mon expérience, je pense que le problème réside plus dans le format de base du fichier dans lequel est écrit le dump de MySQL (ANSI, ASCII, ...).
J'utilise une astuce qui me permet de ne plus avoir de problème de caractères : je demande à mysqldump de bziper le fichier de sortie. Ensuite dans PHPMyAdmin, on peut importer directement le .bz2 Avec cette astuce, plus de problème d'accent en ce qui me concerne ... j'espère que ça pourra fonctionner pour vous ...

Ma fonction en vrac :

Code :
private function sauvegarde_mysql(){
    $date = date("Y_m_d");
    switch($this->format){
        case "bzip2":
            $extension = ".sql.bz2";
            break;
        case "gzip":
            $extension = ".sql.gz";
            break;
        default:
            $this->erreur("Format de compression <b>" . $this->format . "</b> non pris en charge.");
            break;
    }
    $fichier = $this->dossierSauv . $this->nomDb . "_" . $date . $extension;
    exec('mysqldump --user="' . $this->utilisateur . '" --password="' . $this->motDePasse . '" "' . $this->nomDb . '" | ' . $this->format . ' > "' . $fichier . '"');
    echo "Sauvegarde effectuée. Fichier <b>" . $fichier . "</b> sauvegardé <br />\n";
    $this->response->setVar("fichierDeSauvegarde", $fichier);
    $this->response->setVar("nomDuFichier", $this->nomDb . "_" . $date . $extension);
    $this->response->setVar("prefix", $this->nomDb . "_");
}
re,

Pourquoi déterrer un VIEUX post du 25/05/2010 !!!
A cause du non suivi par Lianodel
Donc discussion à fermer

alphanono

Parce que que quand on fait une recherche Google sur le sujet, c'est là qu'on tombe. Donc j'apporte une réponse directe dans le topic.
Sans vouloir te vexer Jce, le problème vient lorsqu'un utilisateur profite d'un post ouvert pour poser une question.
Ici, alphanono apporte ses compétences et une solution.
Je suis heureux de voir un nouveau soutien à la communauté.