Dalam operasi pencadangan dan pemulihan data mysql, masalah ditemui: setelah menggunakan sqlyog untuk pencadangan data, dan kemudian memulihkan data di server lain, pemisah "'" dilahap karena bidang varbinary di salah satu tabel (karena masalah pengkodean biner, pemisah tanda kutip diperlakukan sebagai bagian dari data), sehingga data tidak dapat diimpor secara normal.
Beberapa alat teks digunakan untuk pemrosesan, tetapi tidak berhasil, beberapa di antaranya dapat dikenali, tetapi secara otomatis memodifikasi data yang dikodekan biner, dan beberapa akan menyisipkan data biner lainnya, sehingga masih tidak dapat dibaca.
Jadi pertimbangkan metode lain: baca data dan eja pernyataan SQL, lalu impor. Metode spesifiknya adalah:
(1) Gunakan fungsi HEX untuk membaca data saat mengekspor, dan mengubah data biner menjadi string heksadesimal;
pilih HEX(binField) dari testTable;
(2) Gunakan fungsi UNHEX untuk mengubah string heksadesimal menjadi database impor data biner selama impor;
masukkan ke dalam testTable binNilai bidang(UNHEX(@hexstr));
Kode berikut menunjukkan fungsionalitas HEX dan UNHEX:
PILIH HEX('ini adalah test str') dan hasil kueri adalah: 746869732069732061207465737420737472 PILIH UNHEX('746869732069732061207465737420737472'), dan hasil kueri adalah: ini adalah str pengujian
Anda juga dapat membaca karakter heksadesimal secara langsung, menambahkan awalan 0x ke string: SELECT 0x746869732069732061207465737420737472, hasil kueri adalah: ini adalah test str
Selain itu, Anda juga dapat menggunakan metode impor dan ekspor biner untuk mencadangkan dan memulihkan data. Tidak ada diskusi di sini.
|