Într-o operațiune de backup și recuperare a datelor mysql, a apărut o problemă: după folosirea sqlyog pentru backup și recuperarea datelor pe un alt server, separatorul "'" a fost consumat din cauza câmpului varbinar dintr-unul dintre tabele (din cauza problemei codării binare, separatorul de ghilimele era tratat ca parte a datelor), astfel încât datele nu puteau fi importate normal.
Unele unelte text erau folosite pentru procesare, dar nu aveau succes, unele putând fi recunoscute, modificând automat datele codificate binar, iar altele inserau alte date binare, rezultând în continuare ilizibile.
Așadar, ia în considerare alte metode: citește datele și scrie instrucțiunea SQL, apoi importă-le. Metodele specifice sunt:
(1) Folosește funcția HEX pentru a citi datele la export și convertește datele binare într-un șir hexazecimal;
selectează HEX(binField) din testTable;
(2) Folosirea funcției UNHEX pentru a converti șirul hexazecimal în baza de date binară de import în timpul importului;
inserați în testTable binField values(UNHEX(@hexstr));
Următorul cod demonstrează funcționalitatea HEX și UNHEX:
SELECT HEX ("acesta este un test str") și rezultatul interogării este: 746869732069732061207465737420737472 SELECT UNHEX('746869732069732061207465737420737472'), iar rezultatul interogării este: acesta este un test str
Poți citi și caracterul hexazecimal direct, adăugând un prefix 0x șirului: SELECT 0x746869732069732061207465737420737472, rezultatul interogării este: acesta este un test str
În plus, poți folosi și metode binare de import și export pentru a face backup și restaura datele. Nu există nicio discuție aici.
|