Aller au contenu
Invision Board France
  • 0

[3.4 -> 4.X] erreur conversion utf-8 durant la migration


kosmos1999

Question

Bonjour à tous,

Suite à un problème avec mon hébergeur et l'impossibilité de faire la migration sur mon hébergement, j'ai téléchargé l'intégralité de mon forum et ma base pour recréer l'environnement sur un serveur local. J'ai remis le site dans son état d'origine, j'ai viré tous les hooks, tous les plugins, j'ai repassé le site en anglais... J'ai ensuite suivi le tuto pour la migration et tout se passe bien jusqu'à la conversion en uft-8

image.png.c3d3a323e0a526db0515f48652f8b406.png

 

image.png.84a1044ee3ca24a81111ee3634b156ee.png

 

image.png.ee7d5457618681689cd6e4876f21ab7d.png

 

image.png.98ae904cd579c1ed9e9d8a917bc6a27a.png

Ma base :

image.png.5f97808c486a7a12dd89995adf7dbd99.png

 

Mais certaines colonnes sont en utf8_general_ci ou utf8_unicode_ci ou utf8mb4_unicode_ci

 

Avez-vous une idée de comment convertir ma base ou de quel problème vient cette erreur de longueur maximale (je rappelle que je suis sur un serveur local, donc si je dois modifier des paramètres serveurs, je peux).

 

Merci d'avance de votre aide.

 

 

 

 

 

image.png

image.png

Modifié par kosmos1999
Lien vers le commentaire
Partager sur d’autres sites

4 réponses à cette question

Messages recommandés

  • 0

Raté pour la version alors mince.

 

Pour le second point, c'était au lieu de faire les tables une par une, tout refaire.

Tu as bien un backup complet hein ? :)

 

Donc option 1 : Modifier les tables au format MyISAM une par une pour les convertir en InnoDB

Un poil fastidieux  mais ça se fait...

ALTER TABLE xxxxx ENGINE=InnoDB;
ALTER TABLE yyyyy ENGINE=InnoDB;
...

C'est aussi possible via l'interface de phpMyAdmin par exemple, sur une table, onglet Opérations

image.png.876ca7e05e67fd4aae9f034071708993.png

 

 

OU Option 2

Passer la commande suivante qui va dire à MySQL "créé moi les tables en InnoDB"

mysql> SET GLOBAL default_storage_engine = 'InnoDB';

 

Puis refaire un import (Dans une autre base par exemple, ou en supprimant l'existante)

De cette façon tout sera recréé en InnoDB (Sauf contre indication dans ton fichier d'import)

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bonjour :)

 

la base de données c'est pas trop mon truc mais quelques sujets sur IPS et Google m'orientent vers:

 

Quelle version de Mysql utilises-tu ? La version 5.7.x pourrait corriger le soucis

Autre piste: Convertir les tables au format InnoDB et retester

 

Ou si trop long... tout supprimer, passer la commande suivante afin que les nouvelles tables soient par défaut en InnoDB.

Puis relancer ton import, tout devrait être en InnoDB par défaut si j'ai bien compris

 

Citation

Cause
There is a known bug with MySQL related to MyISAM, the UTF8 character set and indexes that you can check here.

Resolution

Make sure MySQL is configured with the InnoDB storage engine.
Change the storage engine used by default so that new tables will always be created appropriately:


set GLOBAL storage_engine='InnoDb';

For MySQL 5.6 and later, use the following:
mysql> SET GLOBAL default_storage_engine = 'InnoDB';

 

 

 

Source: https://confluence.atlassian.com/fishkb/mysql-database-migration-fails-with-specified-key-was-too-long-max-key-length-is-1000-bytes-298978735.html

 

Je ne suis convaincu mais ça se tente... bon courage !

Lien vers le commentaire
Partager sur d’autres sites

  • 0
Il y a 15 heures, cybero a dit :

Quelle version de Mysql utilises-tu ? La version 5.7.x pourrait corriger le soucis

 

Je suis en 5.7.26

 

Pour le reste, je ne suis pas sûr de savoir le faire.

Tu parles d'effacer la base actuelle, créer une nouvelle en InnoDB et réimporter ma sauvegarde sans créer les tables ?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bonjour,

Merci beaucoup pour ton aide.

J'ai pu écrire un script avec excel (copier/coller des noms de toutes les tables + copier/coller de ton script) :)

J'ai dû faire une modif dans une cellule spécifique d'une table (cal_events) qui avait un format foireux et qui bloquait et finalement la conversion s'est terminée sans encombres.

 

image.png.cc56c0516f4ef262334e5b872cd309be.png

 

MAIS... 🙄

 

Quand j'ai lancé l'upgrade, au bout de quelques minutes, de nouveau bloqué par une erreur (je n'ai pas fait de copie d'écran, j'ai essayé de revenir en arrière et ça a tout planté)

Je suis en train de recharger la sauvegarde de ma base et je vais relancer la conversion et l'upgrade. J'ouvrirai un autre post car cette erreur est "résolue".

Merci encore.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à cette question…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...

Information importante

En utilisant ce site, vous êtes d’accords avec nos Conditions d’utilisation. Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookies, sinon nous supposerons que vous êtes d’accord pour continuer.