Bei einer MySQL-Datensicherung und -wiederherstellung trat ein Problem auf: Nachdem sqlyog für die Datensicherung verwendet und die Daten auf einem anderen Server wiederhergestellt wurden, wurde der "'"-Separator aufgrund des varbinären Feldes in einer der Tabellen verschlungen (aufgrund des Problems der binären Codierung wurde der Anführungszeichen-Separator als Teil der Daten behandelt), sodass die Daten nicht normal importiert werden konnten.
Einige Textwerkzeuge wurden zur Verarbeitung verwendet, waren jedoch erfolglos; einige davon konnten erkannt werden, änderten aber automatisch die binären kodierten Daten, und einige fügten weitere binäre Daten ein, sodass sie weiterhin unlesbar waren.
Betrachten Sie also andere Methoden: Lesen Sie die Daten, buchstabieren Sie die SQL-Anweisung und importieren Sie sie dann. Die spezifischen Methoden sind:
(1) Verwenden Sie die HEX-Funktion zum Auslesen der Daten beim Export und wandeln Sie die Binärdaten in eine hexadezimale Zeichenkette um;
wählen Sie HEX(binField) aus testTable aus;
(2) Die UNHEX-Funktion verwenden, um die hexadezimale Zeichenkette während des Imports in die binäre Datenimportdatenbank umzuwandeln;
in testTable binField-Werte(UNHEX(@hexstr)) einfügen;
Der folgende Code demonstriert die Funktionalität von HEX und UNHEX:
SELECT HEX('dies ist eine Teststr') und das Ergebnis der Abfrage lautet: 746869732069732061207465737420737472 WÄHLEN SIE UNHEX('746869732069732061207465737420737472'), und das Ergebnis der Abfrage lautet: dies ist eine Test-Stärke
Du kannst das hexadezimale Zeichen auch direkt lesen und ein 0x-Präfix zum String hinzufügen: SELECT 0x746869732069732061207465737420737472, das Abfrageergebnis lautet: dies ist eine Test-Stärke
Zusätzlich können Sie auch binäre Import- und Exportmethoden verwenden, um Daten zu sichern und wiederherzustellen. Hier gibt es keine Diskussion.
|