Unknown collation: utf8mb4 unicode ci
De Vulgum Techus
Version du 4 mai 2019 à 11:30 par Admin2 (discuter | contributions)
Lien court vers cette page : https://vt.cx/Ucuu QR code vers cette page : https://vt.cx/.qr
Sommaire
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
- 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