Em uma operação de backup e recuperação de dados mysql, um problema foi encontrado: após usar sqlyog para backup de dados e depois recuperar os dados em outro servidor, o separador "'" foi consumido devido ao campo varbinary em uma das tabelas (devido ao problema da codificação binária, o separador de aspas foi tratado como parte dos dados), de modo que os dados não podiam ser importados normalmente.
Algumas ferramentas de texto eram usadas para processamento, mas não tinham sucesso, algumas podiam ser reconhecidas, mas modificavam automaticamente os dados codificados binários, e outras inseriam outros dados binários, resultando ainda ilegíveis.
Então considere outros métodos: leia os dados, soletra a instrução SQL e depois importe. Os métodos específicos são:
(1) Usar a função HEX para ler os dados ao exportar e converter os dados binários em uma string hexadecimal;
selecione HEX(binField) em testTable;
(2) Usar a função UNHEX para converter a string hexadecimal no banco de dados de importação binária durante a importação;
inserir em testTable binField values(UNHEX(@hexstr));
O código a seguir demonstra a funcionalidade do HEX e do UNHEX:
SELECIONE HEX ('isto é um teste de força') e o resultado da consulta é: 746869732069732061207465737420737472 SELECT UNHEX('746869732069732061207465737420737472'), e o resultado da consulta é: este é um test str
Você também pode ler o caractere hexadecimal diretamente, adicionando um prefixo 0x à cadeia: SELECT 0x746869732069732061207465737420737472, o resultado da consulta é: este é um teste de força
Além disso, você também pode usar métodos binários de importação e exportação para fazer backup e restaurar dados. Não há discussão aqui.
|