J'ai récemment déposé une base de données dans le cadre de la migration d'un ancien serveur vers un nouveau serveur. Certaines des tables ont le jeu de caractères utf8mb4
comme classement par défaut et comme jeu de caractères pour certains des champs.Avertissements "chaîne de caractères utf8mb4 non valide" sur les champs POINT lors de l'importation à partir d'un mysqldump
L'une des tables comporte également un champ de type POINT. Lorsque j'exécute mysqldump --default-character-set=utf8mb4 ... > dump.sql
puis que j'essaie d'importer dump.sql
, j'obtiens l'avertissement "Chaîne de caractères utf8mb4 non valide" pour toutes les lignes dont l'emplacement est défini dans le champ POINT.
Dois-je m'inquiéter à ce sujet? Il me semble que les données sont migrées correctement, mais je n'aime pas voir les avertissements!
EDIT: Exemple de code et comment le reproduire. Ce qui suit est la sortie de mysqldump
sans options spéciales (l'ajout de l'option de jeu de caractères utfmb4 par défaut n'a pas aidé), sur un exemple de table d'un exemple de base de données. La table a une ligne:
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `Items` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Title` varchar(255) CHARACTER SET utf8mb4 NOT NULL,
`LatLong` point NOT NULL,
PRIMARY KEY (`ID`),
SPATIAL KEY `LatLong` (`LatLong`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
INSERT INTO `Items` VALUES (1,'item1','\0\0\0\0\0\0\[email protected]\[email protected]?V?');
Si vous fuyez avec MySQL source file.sql
sur le fichier contenant ce SQL que vous obtenez les avertissements suivants sur l'insert:
Query OK, 1 row affected, 1 warning (0.00 sec)
Warning (Code 1300): Invalid utf8mb4 character string: 'BE141E'
Informations complémentaires:
> file -i file.sql
file.sql: application/octet-stream; charset=binary
> mysql --version
mysql Ver 14.14 Distrib 5.7.17, for Linux (i686) using EditLine wrapper
Exécution d'Ubuntu 16.04 LTS
Étrange. Pouvez-vous nous montrer un exemple de ce qui se trouve dans le fichier de vidage? –
J'ai mis à jour le poste avec un exemple de vidage. –