调整mysql字符设置解决kettle ETL时出现的乱码
从生产环境抽取数据至仓库时,发现目标库中的汉字是乱码。我的环境是从mysql至mysql,暂时没有异构数据库,架构比较简单。解决这个问题方法是调整mysql服务器的字符集,确保如下:
mysql> show variables like 'char%';
+--------------------------+--------------------------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------------------------+
| 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 |
| Variable_name | Value |
+--------------------------+--------------------------------------------------------+
| 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 |
如果在设置之后,仍然出现乱码时就需要检查建库脚本中的字条集是否也是utf8。