Beim Importieren von Daten mit falscher MySQL-Zeichensatzkodierung tritt ein Fehler auf. Dies ist dasselbe wie beim Einfügen von Daten. Wenn die gespeicherten Daten von der MySQL-Kodierung abweichen, kommt es definitiv zu Problemen mit dem Importieren verstümmelter Zeichen oder dem Verlust eingefügter Daten. Schauen wir uns ein Beispiel an. <script>ec(2);</script> Fehler bei der Datenbankwiederherstellung: Aufgrund von Zeichensatzproblemen ist die Standardkodierung der ursprünglichen Datenbank Latin1 und die Kodierung der neu gesicherten Datenbank ist UTF8, was zu Wiederherstellungsfehlern führt. [root@hk byrd]# /usr/local/mysql/bin/mysql -uroot -p'admin' t4x < /tmp/11x-B-2014-06-18.sql FEHLER 1064 (42000) in Zeile 292: Ihre SQL-Syntax weist einen Fehler auf. Überprüfen Sie das Handbuch zu Ihrer MySQL-Serverversion auf die richtige Syntax in der Nähe von ''[caption id=\"attachment_271\" align=\"aligncenter\" width=\"300\"]<a href=\"ht' in Zeile 1 Reparaturmethode (nicht getestet): [root@Test ~]# /usr/local/mysql/bin/mysql -uroot -p'admin' --default-character-set=latin1 t4x < /tmp/11x-B-2014-06-18.sql MySQL -- MySQL Dump 10.13 Distrib 5.5.37, für Linux (x86_64) -- -- Host: localhost Datenbank: t4x -- ------------------------------------------------------ --Serverversion 5.5.37-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 NAMEN FESTLEGEN utf8 */; /*!40103 SETZEN @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SETZE ZEITZONE=' 00:00' */; /*!40014 SETZEN @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SETZEN @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Aktuelle Datenbank: `t4x` -- DATENBANK ERSTELLEN /*!32312 WENN NICHT VORHANDEN*/ `t4x` /*!40100 STANDARDZEICHENSATZ utf8 */; -- -- Tabellenstruktur für Tabelle „wp_baidusubmit_sitemap“ -- Tabelle löschen, wenn `wp_baidusubmit_sitemap` vorhanden ist; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET Zeichensatzclient = utf8 */; Tabelle „wp_baidusubmit_sitemap“ erstellen ( `sid` int(11) NICHT NULL AUTO_INCREMENT, `url` varchar(255) NICHT NULL STANDARD '', `Typ` tinyint(4) NICHT NULL, `create_time` int(10) NICHT NULL STANDARD '0', `start` int(11) DEFAULT '0', `Ende` int(11) DEFAULT '0', `item_count` int(10) unsigned DEFAULT '0', `Dateigröße` int(10) unsigned DEFAULT '0', `lost_time` int(10) unsigned DEFAULT '0', PRIMÄRSCHLÜSSEL (`sid`), SCHLÜSSEL `start` (`start`), SCHLÜSSEL `Ende` (`Ende`) ) ENGINE=MyISAM AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*!40101 SET Zeichensatzclient = @saved_cs_client */; 0 1 [root@hk byrd]# /usr/local/mysql/bin/mysql -uroot -p'admin' t4x < /tmp/t4x-B-2014-06-17.sql FEHLER 1064 (42000) in Zeile 295: Ihre SQL-Syntax weist einen Fehler auf. Überprüfen Sie im Handbuch zu Ihrer MySQL-Serverversion die richtige Syntax für die Verwendung in der Nähe von „i“ in Zeile 1. MySQL --MySQL-Dump 10.11 -- -- Host: localhost Datenbank: t4x -- ------------------------------------------------------ --Serverversion 5.0.95-log /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 NAMEN FESTLEGEN utf8 */; /*!40103 SETZEN @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SETZE ZEITZONE=' 00:00' */; /*!40014 SETZEN @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SETZEN @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; -- -- Aktuelle Datenbank: `t4x` -- DATENBANK ERSTELLEN /*!32312 WENN NICHT VORHANDEN*/ `t4x` /*!40100 STANDARDZEICHENSATZ latin1 */; VERWENDEN Sie `t4x`; -- -- Tabellenstruktur für Tabelle „wp_baidusubmit_sitemap“ -- Tabelle löschen, wenn `wp_baidusubmit_sitemap` vorhanden ist; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET Zeichensatzclient = utf8 */; Tabelle „wp_baidusubmit_sitemap“ erstellen ( `sid` int(11) NICHT NULL auto_increment, `url` varchar(255) NICHT NULL Standard '', `Typ` tinyint(4) NICHT NULL, `create_time` int(10) NICHT NULL Standard '0', `start` int(11) Standard '0', `Ende` int(11) Standard '0', `item_count` int(10) vorzeichenlos Standard '0', `file_size` int(10) vorzeichenlos Standard '0', `lost_time` int(10) vorzeichenloser Standardwert '0', PRIMÄRSCHLÜSSEL (`sid`), SCHLÜSSEL `start` (`start`), SCHLÜSSEL `Ende` (`Ende`) ) ENGINE=MyISAM AUTO_INCREMENT=83 DEFAULT CHARSET=utf8; /*!40101 SET Zeichensatzclient = @saved_cs_client */; Zeichensatzbezogen: MySQL mysql>Variablen wie „%character_set%“ anzeigen; --------------------------------------------- | Variablenname | Wert | --------------------------------------------- | Zeichensatzclient | utf8 | | Zeichensatzverbindung | utf8 | | Zeichensatzdatenbank | utf8 | | Zeichensatz_Dateisystem | Binär | | Zeichensatzergebnisse | utf8 | | Zeichensatzserver | latin1 | | Zeichensatzsystem | utf8 | | Zeichensatzverzeichnis | /usr/share/mysql/charsets/ | --------------------------------------------- mysql>Namen festlegen gbk; mysql>Variablen wie „%character_set%“ anzeigen; --------------------------------------------- | Variablenname | Wert | --------------------------------------------- | Zeichensatzclient | gbk | | Zeichensatzverbindung | gbk | | Zeichensatzdatenbank | utf8 | | Zeichensatz_Dateisystem | Binär | | Zeichensatzergebnisse | gbk | | Zeichensatzserver | latin1 | | Zeichensatzsystem | utf8 | | Zeichensatzverzeichnis | /usr/share/mysql/charsets/ | --------------------------------------------- mysql>system cat /etc/my.cnf | grep default #Client setzt den Zeichensatz client unten default-character-set=gbk mysql>Variablen wie „%character_set%“ anzeigen; --------------------------------------------- | Variablenname | Wert | --------------------------------------------- | Zeichensatzclient | gbk | | Zeichensatzverbindung | gbk | | Zeichensatzdatenbank | latin1 | | Zeichensatz_Dateisystem | Binär | | Zeichensatzergebnisse | gbk | | Zeichensatzserver | latin1 | | Zeichensatzsystem | utf8 | | Zeichensatzverzeichnis | /usr/share/mysql/charsets/ | --------------------------------------------- mysql> system cat /etc/my.cnf|grep character-set-server #Client setzt den Zeichensatz mysqld unten character-set-server = cp1250 mysql> Variablen wie „%character_set%“ anzeigen; -------------------------- -------------------------------------------- | Variablenname | Wert | -------------------------- -------------------------------------------- | Zeichensatzclient | utf8 | | Zeichensatzverbindung | utf8 | | Zeichensatzdatenbank | cp1250 | | Zeichensatz_Dateisystem | Binär | | Zeichensatzergebnisse | utf8 | | Zeichensatzserver | cp1250 | | Zeichensatzsystem | utf8 | | Zeichensatzverzeichnis | /byrd/service/mysql/5.6.26/share/charsets/ | -------------------------- -------------------------------------------- 8 Zeilen im Satz (0,00 Sek.) Einige andere Einstellungsmethoden: Ändern Sie den Zeichensatz der Datenbank mysql>mydb verwenden mysql>Datenbank mydb-Zeichensatz UTF-8 ändern; Erstellen Sie eine Datenbank und geben Sie den Zeichensatz der Datenbank an mysql>Datenbank mydb erstellen, Zeichensatz UTF-8; Änderungen über die Konfigurationsdatei vornehmen: Ändern Sie /var/lib/mysql/mydb/db.opt Standardzeichensatz = Latin1 Standardkollation=latin1_swedish_ci für Standardzeichensatz = utf8 Standardsortierung = utf8_general_ci Starten Sie MySQL neu: [root@bogon ~]# /etc/rc.d/init.d/mysql neu starten Ändern über die MySQL-Befehlszeile: mysql> setze Zeichensatzclient=utf8; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> setze Zeichensatzverbindung=utf8; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> setze Zeichensatzdatenbank=utf8; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> setze Zeichensatzergebnisse=utf8; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> setze Zeichensatzserver=utf8; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> setze Zeichensatzsystem=utf8; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> setze Kollation_Connection=utf8; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> setze Kollation_Database=utf8; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> setze Kollationsserver=utf8; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) Überprüfen: mysql> Variablen wie „character_set_%“ anzeigen; --------------------------------------------- | Variablenname | Wert | --------------------------------------------- | Zeichensatzclient | utf8 | | Zeichensatzverbindung | utf8 | | Zeichensatzdatenbank | utf8 | | Zeichensatz_Dateisystem | Binär | | Zeichensatzergebnisse | utf8 | | Zeichensatzserver | utf8 | | Zeichensatzsystem | utf8 | | Zeichensatzverzeichnis | /usr/share/mysql/charsets/ | --------------------------------------------- 8 Reihen im Satz (0,03 Sek.) mysql> Variablen wie „collation_%“ anzeigen; ---------------------- ----------------- | Variablenname | Wert | ---------------------- ----------------- | Sortierverbindung | utf8_general_ci | | Sortierdatenbank | utf8_general_ci | | Sortierserver | utf8_general_ci | ---------------------- ----------------- 3 Reihen im Satz (0,04 Sek.) Zusammenfassen Dies ist der gesamte Inhalt dieses Artikels zur kurzen Analyse des Problems des MySQL-Zeichensatzes, der Datenbankwiederherstellungsfehler verursacht. Ich hoffe, er wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie bitte jederzeit eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Vielen Dank, Freunde, für die Unterstützung dieser Site! Das könnte Sie auch interessieren:
|
<<: Linux-System zum Anzeigen von CPU, Maschinenmodell, Speicher und anderen Informationen
>>: Eine kurze Diskussion über den gesamten Prozess des ersten Renderings von Vue
1. Warum diesen Artikel schreiben? Sie haben sich...
Inhaltsverzeichnis 1. Vertikales (längsseitiges) ...
Inhaltsverzeichnis 1. Beziehung zwischen übergeor...
Vorwort Kürzlich stieß ich auf ein Deadlock-Probl...
Die Praxis ist der einzige Weg, die Wahrheit zu t...
Vorwort Dies ist eine Untersuchung, die durch die...
Inhaltsverzeichnis Demo1 Fragment erstellen Svelt...
Als ich Docker zum ersten Mal verwendete, habe ic...
Als nächstes werde ich Java+Tomcat auf Centos7 in...
Inhaltsverzeichnis 1. Verbindungsmanagement 2. Ve...
Vorwort In Datenbanken wie Oracle und SQL Server ...
<br />Originaltext: http://blog.rexsong.com/...
Inhaltsverzeichnis Vorwort Globale Sperre Vollstä...
1 Problembeschreibung: 1.1 Wenn VMware zum ersten...
Inhaltsverzeichnis Implementierung der Statusfrei...