2015-10-09 1 views
1

J'ai un serveur web local fonctionnant sur mon PC et que j'utilise pour le développement local. Je suis maintenant à l'étape de l'exportation de la base de données et de l'importation sur mon VPS hébergé.# 1115 - Jeu de caractères inconnu: 'utf8mb4'

Lors de l'exportation puis de l'importation, j'obtiens l'erreur suivante!

1115 - Caractère inconnu ensemble: 'utf8mb4'

me point que quelqu'un peut dans la bonne direction?

+0

Comment allez-vous exporter vos données? Quel outil de vidage ou quelle application de gestionnaire de base de données utilisez-vous? –

+0

Quelles sont les versions de MySQL et phpMyAdmin avez-vous (les versions locales et hébergées, s'il vous plaît)? –

Répondre

3

L'erreur indique clairement que vous n'avez pas utf8mb4 pris en charge sur votre serveur db de scène.

cause: vous avez probablement localement MySQL la version 5.5.3 ou plus, et sur scène/hébergé VPS vous avez MySQL version serveur moins de 5.5.3

Les jeux de caractères utf8mb4 a été ajouté en MySQL 5.5.3.

utf8mb4 a été ajouté en raison d'un bogue dans le caractère utf8 de MySQL de jeu. La gestion par MySQL du jeu de caractères utf8 n'autorise qu'un maximum de 3 octets pour un seul point de code, ce qui n'est pas suffisant pour représenter le entier de Unicode (Maximum codepoint = 0x10FFFF). Parce qu'ils ne voulaient pas potentiellement casser tout ce qui comptait sur ce comportement buggé , utf8mb4 a été ajouté. Documentation here.


Solution 1: mise à niveau simplement votre serveur MySQL 5.5.3 (au-moins) - pour la prochaine fois être conscient de la version que vous utilisez localement, pour la scène, et pour prod, tous doit être identique. Une suggestion - actuellement le jeu de caractères par défaut doit être utf8mb4.


Solution 2 (non recommandé): Convertir le jeu de caractères courant à utf8, puis exporter les données - il chargera ok.

1

Parfois, j'ai des problèmes similaires lors de l'utilisation de HeidiSQL qui, par défaut, exporte en encodage de caractères utf8mb4. Toutes les installations MySQL ne supportent pas ce codage et l'importation de telles données conduit à des messages d'erreur similaires. Ma solution consiste alors à exporter des données en utilisant phpMyAdmin, qui exporte dans utf8. Il y a problably d'autres outils et manières possibles comme éditant manuellement le fichier de vidage, le convertissant de utf8mb4 en utf8 (si nécessaire) et changeant SET NAMES utf8mb4 en SET NAMES utf8. Utf8mb4 est un surensemble de utf8, donc si vous êtes absolument sûr, que vos données sont juste utf8, alors vous pouvez simplement changer SET NAMES dans le fichier de vidage à utf8.

0

Ouvrir le fichier sql par l'éditeur de texte rechercher et remplacer tous les

utf8mb4 to utf8 

Importer à nouveau.

+0

Vous devriez ajouter une explication à votre réponse. –

0

Cela m'a aidé

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;