|
|
Zverejnené 13. 6. 2016 22:27:47
|
|
|

Pri zálohovaní a obnove dát v mysql sa vyskytol problém: po použití sqlyog na zálohovanie dát a následnom obnovení dát na inom serveri bol "'" oddeľovač pohltený kvôli varbinárnemu poľu v jednej z tabuliek (kvôli problému binárneho kódovania bol oddeľovač úvodzoviek považovaný za súčasť dát), takže dáta nebolo možné normálne importovať.
Na spracovanie sa používali niektoré textové nástroje, ale neboli úspešné, niektoré z nich sa dali rozpoznať, ale automaticky upravovali binárne kódované dáta, a niektoré vkladali iné binárne dáta, takže zostali nečitateľné.
Zvážte teda iné metódy: prečítajte si dáta, napíšte SQL príkaz a potom ho importujte. Konkrétne metódy sú:
(1) Použiť HEX-funkciu na čítanie dát pri exporte a konvertovať binárne údaje na hexadecimálny reťazec;
vyberte HEX(binField) z testTable;
(2) Použiť funkciu UNHEX na konverziu hexadecimálneho reťazca do databázy importu binárnych dát počas importu;
vložiť do testTable binField hodnoty(UNHEX(@hexstr));
Nasledujúci kód demonštruje funkčnosť HEX a UNHEX:
SELECT HEX('toto je testovací str') a výsledok dotazu je: 746869732069732061207465737420737472 SELECT UNHEX('746869732069732061207465737420737472'), a výsledok dotazu je: toto je testovací str
Hexadecimálny znak môžete tiež prečítať priamo, pričom k reťazcu pridáte predponu 0x: SELECT 0x746869732069732061207465737420737472, výsledok dotazu je: toto je testovací str
Okrem toho môžete použiť binárne metódy importu a exportu na zálohovanie a obnovu dát. Tu sa o tom nediskutuje.
|
Predchádzajúci:Discuz nezistil, že pre_forum_post údaje o tabuľke chýbajúBudúci:Úvodný návod na SQL XML
|