So gehen Sie mit dem Fehler beim Einfügen seltener Zeichen in MySQL um (falscher Zeichenfolgenwert)

So gehen Sie mit dem Fehler beim Einfügen seltener Zeichen in MySQL um (falscher Zeichenfolgenwert)

Kürzlich wurde auf Unternehmensseite gemeldet, dass einige Benutzerinformationen nicht eingefügt werden konnten. Die Fehlermeldung war ähnlich wie „Falscher Zeichenfolgenwert: „\xF0\xA5…“. Aus dieser Meldung geht hervor, dass der Fehler wahrscheinlich dadurch verursacht wird, dass der Zeichensatz ein bestimmtes, nicht übliches Zeichen nicht unterstützt.

Hier ist das in der virtuellen Maschine reproduzierte Szenario:

Schritt 1, simulieren Sie die ursprüngliche Zeichensatzumgebung der Tabellenstruktur:

Test verwenden;
TABELLE ERSTELLEN `t1` (
 `id` int(10) NICHT NULL AUTO_INCREMENT,
 `real_name` varchar(255) ZEICHENSATZ utf8 STANDARD '' KOMMENTAR 'Name',
 `nick` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'Spitzname',
 PRIMÄRSCHLÜSSEL (`id`)
) ENGINE=InnoDBAUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Mitgliedskarte';

Schritt 2, seltene Wörter einfügen (mithilfe der SQLYog-Simulation):

1. Simulieren Sie zunächst die Online-Umgebung und legen Sie den Zeichensatz fest:

wKiom1kUGECCXdKDAAAV9L1hpEY173.png

2. Fügen Sie seltene Zeichen ein (für seltene Zeichen siehe: http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=257E3)

wKioL1kUGEHCtaAvAABxJXp_7Ow741.png

Wir versuchen Wang einzufügen (in Word ALT gedrückt halten und 152964 eingeben). Sie können sehen, dass das Einfügen fehlgeschlagen ist.

Schritt 3. Ändern Sie den Zeichensatz von real_name:

Test verwenden;

alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' KOMMENTAR 'Name';

Handelt es sich um eine große Online-Tabelle, kann diese mit pt-osc bearbeitet werden. Der Befehl lautet:

pt-online-schema-change -uroot -h localhost --alter=" realen Namen ändern realen Namen varchar(255) ZEICHENSATZ utf8mb4 STANDARD '' KOMMENTAR 'Name' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --dry-run
pt-online-schema-change -uroot -h localhost --alter=" realen Namen ändern realen Namen varchar(255) ZEICHENSATZ utf8mb4 STANDARD '' KOMMENTAR 'Name' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --execute

Schritt 4, fügen Sie das Experiment erneut ein:

1. Stellen Sie zuerst den Zeichensatz ein:

wKiom1kUGECCXdKDAAAV9L1hpEY173.png

2. Fügen Sie es erneut ein. Sie können sehen, dass das Einfügen erfolgreich war.

wKioL1kUGILTLvpxAAAdWKxKR5A899.png

Die Befehlszeilenabfrage enthält keinen unleserlichen Code:

wKiom1kUGIPyeykFAAAiRzDqNxs956.png

Das ist alles, Sie können darauf zurückgreifen.

Das könnte Sie auch interessieren:
  • Lösung für die Fehlermeldung "java.sql.SQLException: Incorrect string value:'\xF0\x9F\x92\xA9\x0D\x0A...'" beim Speichern von Emoticons in MySQL
  • MySQL löst bei der Ausnahmeanalyse einen falschen Zeichenfolgenwert aus
  • MySql-Fehler: Falscher Zeichenfolgenwert für Spalte
  • Lösung für falsche Zeichenfolgenwerte in MySQL

<<:  Ein vollständiges Beispiel für die Implementierung eines zeitgesteuerten Crawlers mit Nodejs

>>:  Bereitstellungsdokument für die Sicherheitseinstellungen des Win2008-Servers (empfohlen)

Artikel empfehlen

Detaillierte Erläuterung der Destrukturierungszuweisung von JS ES6-Variablen

Inhaltsverzeichnis 1. Was ist Dekonstruktion? 2. ...

MySQL-Datenbank-Grundlagen SQL-Fensterfunktion Beispielanalyse-Tutorial

Inhaltsverzeichnis Einführung Einführung Aggregat...

Docker-Cross-Server-Kommunikations-Overlay-Lösung (Teil 1) Consul-Einzelinstanz

Inhaltsverzeichnis Szenario Aufgabe Idee analysie...

Backup zwischen MySQL-Datenbank und Oracle-Datenbank importieren

Importieren Sie die aus der Oracle-Datenbank expo...

Implementierung der Docker-Bereitstellung eines MySQL-Clusters

Nachteile einer Single-Node-Datenbank Große Inter...

js implementiert das Umschalten von Bildern per Maus (ohne Timer)

In diesem Artikelbeispiel wird der spezifische Co...

Analyse des Konfigurationsprozesses der Nginx-HTTP-Integritätsprüfung

Passive Prüfung Mit passiven Integritätsprüfungen...

SQL-Implementierung LeetCode (176. Zweithöchstes Gehalt)

[LeetCode] 176. Zweithöchstes Gehalt Schreiben Si...

Html+css, um reinen Text und Schaltflächen mit Symbolen zu erreichen

Dieser Artikel fasst die Implementierungsmethoden...

Detaillierte Erläuterung des Befehls zum Bereinigen des MySQL-Datenbank-Binlogs

Überblick Heute werde ich hauptsächlich erklären,...

jQuery+Ajax zum Erreichen eines einfachen Paging-Effekts

In diesem Artikel wird der spezifische Code von j...

Beispiel für die Konfiguration von nginx zur Implementierung von SSL

Umgebungsbeschreibung Serversystem: Ubuntu 18.04 ...

Schritte zum Ändern des MySQL-Datenbankdatendateipfads unter Linux

Nach der Installation der MySQL-Datenbank mit der...