In un'operazione di backup e recupero dati mysql, si è incontrato un problema: dopo aver usato sqlyog per il backup dei dati e poi aver recuperato i dati su un altro server, il separatore "'" veniva consumato a causa del campo varbinario in una delle tabelle (a causa del problema della codifica binaria, il separatore a virgolette veniva trattato come parte dei dati), così che i dati non potevano essere importati normalmente.
Alcuni strumenti di testo venivano utilizzati per l'elaborazione, ma non ebbero successo, alcuni dei quali potevano essere riconosciuti, ma modificavano automaticamente i dati codificati binari, e altri inserivano altri dati binari, risultando ancora illeggibili.
Quindi considera altri metodi: leggi i dati e scrivi l'istruzione SQL, e poi importalo. I metodi specifici sono:
(1) Utilizzare la funzione HEX per leggere i dati durante l'esportazione e convertire i dati binari in una stringa esadecimale;
seleziona HEX(binField) da testTable;
(2) Utilizzare la funzione UNHEX per convertire la stringa esadecimale nel database binario di importazione dati durante l'importazione;
inserire in testTable binField values(UNHEX(@hexstr));
Il seguente codice dimostra la funzionalità di HEX e UNHEX:
SELEZIONA HEX ('questo è un test str') e il risultato della query è: 746869732069732061207465737420737472 SELECT UNHEX('746869732069732061207465737420737472'), e il risultato della query è: questo è un test str
Puoi anche leggere direttamente il carattere esadecimale, aggiungendo un prefisso 0x alla stringa: SELECT 0x746869732069732061207465737420737472, il risultato della query è: questo è un test str
Inoltre, puoi anche utilizzare metodi binari di importazione ed esportazione per fare backup e ripristinare i dati. Non c'è discussione qui.
|