Força a codificação do mysqldump

1

Eu tenho dois servidores mysql, vistos do mesmo cliente mysql, right_server está processando os caracteres franceses corretamente, wrong_server não é. A codificação é a mesma:

$ mysql -h right_server -NBe "SHOW VARIABLES LIKE 'character_set_%'"
$ mysql -h wrong_server -NBe "SHOW VARIABLES LIKE 'character_set_%'"

dê os mesmos resultados:

character_set_client     utf8
character_set_connection utf8
character_set_database   utf8
character_set_filesystem binary
character_set_results    utf8
character_set_server     utf8
character_set_system     utf8

Eu uso o mysqldump para verificar se as estruturas das tabelas são as mesmas:

$ mysqldump -h right_server db MY_TABLE | grep MY_COL
$ mysqldump -h wrong_server db MY_TABLE | grep MY_COL

mas um dos comentários não é processado corretamente:

  'MY_COL' varchar(7) COLLATE utf8_bin COMMENT 'associé à',
  'MY_COL' varchar(7) COLLATE utf8_bin COMMENT 'associ. .',

(resultado com mysqldump --default-character-set=UTF8 --no-data é o mesmo)

Em wrong_server caracteres parecem armazenados corretamente:

[wrong_server]$ mysql -e 'show create table db.MY_TABLE\G'
  'MY_COL' varchar(7) COLLATE utf8_bin COMMENT 'associé à',

Como forçar a codificação mysqldump?

Nota: a única diferença que vejo entre os servidores é

character_sets_dir      /.../mysql.../share/charsets/

em SHOW VARIABLES LIKE 'character_set_%' de um servidor e nenhum arquivo utf definido neste diretório.

    
por Philippe Blayo 20.08.2012 / 11:15

0 respostas