做一个kettle同步数据到mysql的活儿,从http client拿数据入库后一直乱码
各方排查 全部统一编码uft8后还是出现乱码
于是统一mysql全局编码:
入库后依然乱码。。。。心态爆炸 。。。。。。。。。。。。
因为建表语句是 pdm自动生成的 未自带default 编码
创建表后 show create table 还是lan1编码
删除这个表后 再show variables like '%character%';
发现
character_set_database竟然更改了
排查一波 show create dabase xxx 发现创建表所在的库 由于是是早期创建的
编码竟然是latin1
更改database编码 alter database xxx character set utf8;
重启 重新建表 不指定编码 新建表 编码也为 utf8
导入 OK 。
问题搞定。
但是还是不能理解为什么
整个mysql的数据库里的一个database为什么能因为一个ddl操作更改掉整个数据库的character_set_database 编码?
希望有大牛在评论教导