强制 mysqldump 编码

强制 mysqldump 编码

我有两个 mysql 服务器,从同一个 mysql 客户端查看,right_server 正确渲染了法语字符,wrong_server 则不然。编码是相同的:

$ mysql -h right_server -NBe "显示变量如'character_set_%'"
$ mysql -h错误_服务器-NBe“显示变量如‘character_set_%’”

给出相同的结果:

字符集客户端 utf8
字符集连接 utf8
字符集数据库 utf8
字符集文件系统二进制文件
字符集结果 utf8
字符集服务器 utf8
字符集系统 utf8

我使用 mysqldump 检查表结构是否相同:

$ mysqldump -h right_server 数据库 MY_TABLE | grep MY_COL
$ mysqldump -h 错误服务器数据库 MY_TABLE | grep MY_COL

但其中一条评论未正确呈现:

  `MY_COL` varchar(7) COLLATE utf8_bin COMMENT 'associé à',
  `MY_COL` varchar(7) 整理 utf8_bin 注释 'associ. .',

(结果与mysqldump --default-character-set=UTF8 --no-data相同)

wrong_server字符中似乎正确存储:

[错误服务器]$ mysql -e '显示创建表 db.MY_TABLE\G'
  `MY_COL` varchar(7) COLLATE utf8_bin COMMENT 'associé à',

如何强制mysqldump编码?

注意:我在服务器之间看到的唯一区别是

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

SHOW VARIABLES LIKE 'character_set_%'一台服务器中,并且此目录中没有定义 utf 文件。

相关内容