Podczas operacji tworzenia kopii zapasowej i odzyskiwania danych mysql pojawił się problem: po użyciu sqlyog do backupu danych, a następnie odzyskaniu danych na innym serwerze, separator "'" był pożarty z powodu pola varbinary w jednej z tabel (ze względu na problem kodowania binarnego separator cudzysłowu traktowano jako część danych), więc dane nie mogły być importowane normalnie.
Niektóre narzędzia tekstowe były używane do przetwarzania, ale nie powiodły się – niektóre z nich można było rozpoznać, ale automatycznie modyfikować dane kodowane binarnie, a niektóre wprowadzały inne dane binarne, przez co nadal były nieczytelne.
Rozważ więc inne metody: przeczytaj dane i napisz polecenie SQL, a potem go zaimportuj. Konkretne metody to:
(1) Użyć funkcji HEX, aby odczytać dane podczas eksportu i przekształcić dane binarne w ciąg szesnastkowy;
wybierz HEX(binField) z testTable;
(2) Użyć funkcji UNHEX do konwersji ciągu szesnastkowego do binarnej bazy danych importujących podczas importu;
wstaw do testTable wartości binField (UNHEX(@hexstr));
Poniższy kod demonstruje funkcjonalność HEX i UNHEX:
WYBIERZ HEX('to jest testowa str') i wynik zapytania to: 746869732069732061207465737420737472 SELECT UNHEX('746869732069732061207465737420737472'), a wynik zapytania brzmi: to jest testowa siatka
Możesz też odczytać znak szesnastkowy bezpośrednio, dodając do ciągu znaku prefiks 0x: SELECT 0x746869732069732061207465737420737472, wynik zapytania to: to jest testowa siatka
Dodatkowo możesz także używać binarnych metod importu i eksportu do tworzenia kopii zapasowych i przywracania danych. Tu nie ma dyskusji.
|