Ich habe kürzlich eine Datenbank als Teil der Migration von einem alten Server auf einen neuen Server. Einige der Tabellen verfügen über den Zeichensatz utf8mb4
als Standardsortierung und als Zeichensatz für einige der Felder."Ungültige utf8mb4 Zeichenkette" Warnungen auf POINT Felder beim Importieren von einer mysqldump
Eine der Tabellen hat auch ein Feld vom Typ POINT. Wenn ich ausführen und dann versuchen, dump.sql
zu importieren, erhalte ich die Warnung "Ungültige utf8mb4-Zeichenfolge" für alle Zeilen, deren Position im POINT-Feld festgelegt ist.
Muss ich mir Sorgen machen? Es sieht für mich so aus, als ob die Daten korrekt migriert werden, aber ich mag es nicht, Warnungen zu sehen!
EDIT: Beispielcode und wie man reproduziert. Das Folgende ist die Ausgabe von mysqldump
ohne spezielle Optionen (das Hinzufügen der standardmäßigen utfmb4-Zeichensatzoption half nicht), in einer Beispieltabelle einer Beispieldatenbank. Die Tabelle hat eine Zeile:
/*!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?');
Wenn Sie laufen aus mit mysql source file.sql
auf die Datei, um dieses SQL enthält erhalten Sie die folgenden Warnhinweise auf dem Einsatz:
Query OK, 1 row affected, 1 warning (0.00 sec)
Warning (Code 1300): Invalid utf8mb4 character string: 'BE141E'
Weitere Informationen:
> 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
läuft Ubuntu 16.04 LTS
Seltsam. Können Sie uns ein Beispiel dafür zeigen, was sich in der Dump-Datei befindet? –
Ich habe den Beitrag mit einem Beispiel-Dump aktualisiert –