So vereinheitlichen Sie den Zeichensatz einer vorhandenen MySQL-Datenbank

So vereinheitlichen Sie den Zeichensatz einer vorhandenen MySQL-Datenbank

Vorwort

In der Datenbank sind einige Datentabellen und Daten in Latin1, einige Datentabellen und Daten in UTF8 und einige Tabellen haben eine UTF8-Struktur und Latin1-Daten.

Dies ist das erste Mal in meiner über zehnjährigen Berufserfahrung, dass ich mit einer solch merkwürdigen Situation konfrontiert bin. Lassen Sie uns darüber sprechen, wie der Zeichensatz in UTF8 vereinheitlicht werden kann

1. Erstellen Sie eine leere Datenbank

2. Exportieren Sie die Tabellenstruktur und Daten im UTF-8-Format und importieren Sie sie dann direkt in die neue Datenbank

3. Die Datentabelle und die Daten sind beide in Latin1. Exportieren Sie zuerst die Tabellenstruktur und die Daten, fügen Sie --default-character-set=latin1 hinzu, ändern Sie Latin1 in der exportierten Datei in UTF8 und importieren Sie es dann in die neue Datenbank.

4. Wenn die Tabellenstruktur UTF-8 und die Tabellendaten Latin1 sind, gibt es zwei Methoden:

4.1, exportieren Sie zuerst die Tabellenstruktur und importieren Sie sie in die neue Datenbank. Fügen Sie beim Exportieren von Daten --default-character-set=utf8 hinzu, da die Tabellenstruktur utf8 ist und die Tabellendaten latin1 sind, was beim Speichern in der Datenbank zu Verzerrungen führt. Importieren Sie die Daten in die neue Bibliothek. Diese Lösung hat Nachteile. Wenn --default-character-set=utf8 verwendet wird, können die exportierten Daten verloren gehen und beim Importieren der exportierten Daten kann ein Fehler auftreten.

4.2, Sie können für die Übertragung einen binären Zeichensatz verwenden, diese Methode wird empfohlen

UPDATE user SET user_name = CONVERT(CONVERT(CONVERT(user_name USING latin1) USING binary) USING UTF8);

Diese Methode erspart den Aufwand des Exportierens und Importierens und ist relativ schnell. Es dauert etwa 5-6 Sekunden, um 110.000 Datensätze fertigzustellen.

Das Datenbankdesign ist sehr wichtig und muss bei der Konzeption der Datenbank sorgfältig bedacht werden. Wenn das Fundament nicht solide ist, wird das Gebäude früher oder später einstürzen.

Das könnte Sie auch interessieren:
  • Tutorial zum Anzeigen und Ändern von MySQL-Zeichensätzen
  • So ändern Sie den MySQL-Zeichensatz
  • Ursachen und Lösungen für das Problem des verstümmelten Zeichensatzes in der MySQL-Datenbank
  • So ändern Sie den MySQL-Zeichensatz utf8 in utf8mb4
  • Verstümmelte Zeichen und Lösungen im MySQL-Zeichensatz
  • Detaillierte Erläuterung der JDBC-Verarbeitung des Mysql utf8mb4-Zeichensatzes
  • Lösung für Indexfehler in MySQL aufgrund unterschiedlicher Feldzeichensätze
  • So ändern Sie den Standardzeichensatz von MySQL auf dem MAC auf UTF-8
  • So legen Sie den Zeichensatz für MySQL unter Docker fest
  • So lösen Sie das Problem der Nichtübereinstimmung des MySQL-Abfragezeichensatzes
  • Detaillierte Erklärung der Zeichensätze und Validierungsregeln in MySQL

<<:  Der Fallstrickrekord des Gummi-Rebound-Effekts der iOS WeChat H5-Seite

>>:  Detailliertes Beispiel für die Bereitstellung der dynamischen und statischen Trennung von Nginx+Apache

Artikel empfehlen

Vor- und Nachteile von MySQL-Indizes und Richtlinien zum Erstellen von Indizes

1. Warum einen Index erstellen? (Vorteile) Dies l...

Eine kurze Diskussion über Tags in HTML

0. Was ist ein Tag? XML/HTML-CodeInhalt in die Zw...

Nginx tp3.2.3 404 Problemlösung

Vor Kurzem habe ich Apache auf nginx umgestellt. ...

Detaillierte Erläuterung der Beispiele für CSS-Gewichtswerte (Kaskadierung)

•Es gibt viele Selektoren in CSS. Was passiert, w...

Detaillierte Erklärung der Verwendung des Linux-Befehls lsof

lsof (List Open Files) ist ein Tool zum Anzeigen ...

Beispiel zum Überprüfen der Kapazität einer MySQL-Datenbanktabelle

Dieser Artikel stellt die Befehlsanweisungen zum ...

Verwenden Sie Standard-DL-, DT- und DD-Tags, um Tabellenlisten zu verwerfen

Heutzutage beginnen immer mehr Front-End-Entwickle...

Detaillierte Analyse der Kompilierung und Installation von vsFTP 3.0.3

Details zur Sicherheitsanfälligkeit VSFTP ist ein...

Docker verwendet Nextcloud, um eine private Baidu-Cloud-Festplatte zu erstellen

Plötzlich musste ich einen privaten Dienst für di...

So sperren Sie eine virtuelle Konsolensitzung unter Linux

Wenn Sie an einem gemeinsam genutzten System arbe...

Der Iframe-Frame setzt den weißen Hintergrund im IE-Browser auf transparent

In letzter Zeit muss ich im Projektverlauf häufig ...

WebWorker kapselt JavaScript-Sandbox-Details

Inhaltsverzeichnis 1. Szenario 2. Implementieren ...