公司的MySQL 生长库杭州库使用的 MySQL8.0版本,美国库使用的是MySQL5.7,我们数仓团队在使用 kettle 从 Mysql 杭州 抽到 mysql American 库的时候,中文字段出现了乱码, 在 Spoon.bat 文件中添加 "-Dfile.encoding=UTF-8": 和 数据库连接 设置 添加参数characterEncoding = utf8都不管用,why???
发现问题: 我们在杭州库 和 美国库上分别执行 show variables like 'char%' sql 语句操作,发现 MySQL8.0 默认 的 character_set_server = utf8mb4; 而我们美国库的 MySQL5.7版本 character_set_server = latin1 。
解决之道: 由于我们公司的数仓团队操作的 杭州库和美国库都是备份库,修改MySQL的配置文件/etc/my.cnf, 不会对线上MySQL 业务访问造成压力,所以我们采取了直接修改美国MySQL5.7的配置文件,问题完美解决!!! 不要直接在 MySQL命令行操作修改语句,那样是不生效的哦!!!