Unknown collation: utf8mb4 unicode ci : Différence entre versions

De Vulgum Techus
Aller à : Navigation, rechercher
(Page créée avec « = Présentation = Ce problème se rencontre lors de l'import de '''tables SQL''' via '''MySQL''' comme expliqué à '''Importer une base de données sous MySQL'''.... »)
 
 
(Une révision intermédiaire par un utilisateur est masquée)
Ligne 1 : Ligne 1 :
 +
<!-- Links checked 03/05/19 -->
 +
[[Catégorie:Bases de données]]
 +
[[Catégorie:Linux]]
 +
'''[[Lien court]]''' vers cette page : https://vt.cx/Ucuu
 +
'''[[QR code]]''' vers cette page : https://vt.cx/.qr
 +
<html>
 +
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
 +
<!-- VT2 -->
 +
<ins class="adsbygoogle"
 +
    style="display:inline-block;width:468px;height:60px"
 +
    data-ad-client="ca-pub-3341840374417340"
 +
    data-ad-slot="6349432125"></ins>
 +
<script>
 +
(adsbygoogle = window.adsbygoogle || []).push({});
 +
</script>
 +
</html>
 +
 
= Présentation =
 
= Présentation =
Ce problème se rencontre lors de l'import de '''tables SQL''' via '''[[MySQL]]''' comme expliqué à '''[[Importer une base de données sous MySQL]]'''. Ceci vient du jeu de '''collation''' (tri sur caractères spécifiques) qui diffère d'une '''[[version]] de [[MySQL]]''' à une autre. Ainsi le mode '''utf8mb4''' qui a été ajouté au '''[[MySQL]] 5.5.3''', rentre en conflit avec le mode '''utf8''' de '''[[versions]]''' plus anciennes. Corriger ceci peut se faire de plusieurs manières dont les plus simples sont ici envisagées. La première part d'un '''dump''' déjà existant et la seconde se propose de paramétrer la création d'un '''dump''' pour que ce problème de compatibilité ne se pose plus.
+
Ce problème se rencontre lors de l'import de tables SQL via MySQL comme expliqué à '''[[Importer une base de données sous MySQL]]'''. Ceci vient du jeu de collation (tri sur caractères spécifiques) qui diffère d'une version]] de MySQL à une autre. Ainsi le mode utf8mb4 qui a été ajouté au MySQL 5.5.3, rentre en conflit avec le mode utf8 de versions plus anciennes. Corriger ceci peut se faire de plusieurs manières dont les plus simples sont ici envisagées. La première part d'un dump déjà existant et la seconde se propose de paramétrer la création d'un dump pour que ce problème de compatibilité ne se pose plus.
  
 
= Procédure =
 
= Procédure =
 
== Méthode 1 - Correction du dump ==
 
== Méthode 1 - Correction du dump ==
* Éditer le dump '''SQL''' avec un '''[[éditeur texte]]'''
+
* Éditer le dump SQL avec un '''[[éditeur texte]]'''
* Faire un cherche/remplace (search/replace) de  '''utf8mb4''' par '''utf8''' dans tous le dump afin que toutes les occurrences '''utf8mb4_unicode_ci''' deviennent utf8_unicode_ci
+
* Faire un cherche/remplace (search/replace) de  '''utf8mb4''' par '''utf8''' dans tous le dump afin que toutes les occurrences '''utf8mb4_unicode_ci''' deviennent '''utf8_unicode_ci'''
 
* Sauvegarder et refaire l'import comme expliqué à '''[[Importer une base de données sous MySQL]]'''
 
* Sauvegarder et refaire l'import comme expliqué à '''[[Importer une base de données sous MySQL]]'''
* Pour un import via '''[[phpMyAdmin]]''' changer la collation par :
+
* Pour un import via PHPMyAdmin changer la collation par :
 
** Cliquer sur '''Operation'''
 
** Cliquer sur '''Operation'''
 
** Choisir '''Collation'''
 
** Choisir '''Collation'''
Ligne 13 : Ligne 30 :
  
 
== Méthode 2 - Paramétrage du dump ==
 
== Méthode 2 - Paramétrage du dump ==
* Dans '''[[phpMyAdmin]]''', choisir '''Export'''
+
* Dans PHPMyAdmin, choisir '''Export'''
 
* Choisir '''Personnalisée - afficher toutes les options possibles''' dans '''Méthode d'exportation'''
 
* Choisir '''Personnalisée - afficher toutes les options possibles''' dans '''Méthode d'exportation'''
* Au niveau de '''Options spécifiques au format :''' mettre '''MYSQL40''' dans le champs affecté à '''Maximiser la compatibilité avec un système de [[base de données]] ou un ancien [[serveur]] [[MySQL]]'''
+
* Au niveau de '''Options spécifiques au format :''' mettre '''MYSQL40''' dans le champs affecté à '''Maximiser la compatibilité avec un système de [[base de données]] ou un ancien [[serveur]] MySQL'''
 
* Cliquer sur '''Exécuter''' pour lancer la sauvegarde
 
* Cliquer sur '''Exécuter''' pour lancer la sauvegarde
  
 
= Liens utiles =
 
= Liens utiles =
* [https://dev.mysql.com/doc/refman/5.5/en/charset-charsets.html dev.mysql.com] '''Character Sets''' and '''Collations''' That '''[[MySQL]]''' Supports
+
* [https://dev.mysql.com/doc/refman/5.5/en/charset-charsets.html dev.mysql.com] Character Sets and Collations That MySQL Supports
 +
 
 +
= Articles Vulgum Techus =
 +
* [[MySQL]]
 +
* [[PHPMyAdmin]]
 +
* [[ligne de commandes MySQL]]
 +
* [[Mot de passe MySQL perdu sur Debian ou Ubuntu]]
 +
* [[Sauvegarder toutes les bases MySQL d'un coup dans Plesk]]
 +
* [[Importer une base de données sous MySQL]]
 +
* [[Problèmes SQL de la recherche avancée sur Joomla]]
 +
* [[The storage engine for the table doesn't support check]]
 +
 
 +
= Commentaires =
 +
{{#widget:DISQUS
 +
|id=vulgumtechus
 +
}}

Version actuelle en date du 21 janvier 2020 à 13:25

Lien court vers cette page : https://vt.cx/Ucuu
QR code vers cette page : https://vt.cx/.qr

Présentation

Ce problème se rencontre lors de l'import de tables SQL via MySQL comme expliqué à Importer une base de données sous MySQL. Ceci vient du jeu de collation (tri sur caractères spécifiques) qui diffère d'une version]] de MySQL à une autre. Ainsi le mode utf8mb4 qui a été ajouté au MySQL 5.5.3, rentre en conflit avec le mode utf8 de versions plus anciennes. Corriger ceci peut se faire de plusieurs manières dont les plus simples sont ici envisagées. La première part d'un dump déjà existant et la seconde se propose de paramétrer la création d'un dump pour que ce problème de compatibilité ne se pose plus.

Procédure

Méthode 1 - Correction du dump

  • Éditer le dump SQL avec un éditeur texte
  • Faire un cherche/remplace (search/replace) de utf8mb4 par utf8 dans tous le dump afin que toutes les occurrences utf8mb4_unicode_ci deviennent utf8_unicode_ci
  • Sauvegarder et refaire l'import comme expliqué à Importer une base de données sous MySQL
  • Pour un import via PHPMyAdmin changer la collation par :
    • Cliquer sur Operation
    • Choisir Collation
    • Mettre Utf8

Méthode 2 - Paramétrage du dump

  • Dans PHPMyAdmin, choisir Export
  • Choisir Personnalisée - afficher toutes les options possibles dans Méthode d'exportation
  • Au niveau de Options spécifiques au format : mettre MYSQL40 dans le champs affecté à Maximiser la compatibilité avec un système de base de données ou un ancien serveur MySQL
  • Cliquer sur Exécuter pour lancer la sauvegarde

Liens utiles

  • dev.mysql.com Character Sets and Collations That MySQL Supports

Articles Vulgum Techus

Commentaires

blog comments powered by Disqus