美文网首页
解决:Linux下文件导入mysql中出现乱码:???

解决:Linux下文件导入mysql中出现乱码:???

作者: Sam_L | 来源:发表于2019-03-01 12:52 被阅读0次
问题背景:

工程打包到服务器后,执行spark-submit作业提交,将在hdfs的文件读到mysql中的时候,出现


Image 1.png

???
乱码啦

解决:
1、查看默认字符集
 show variables like 'character_set%';
Image 2.png

将这2个改成utf8

2、修改 /etc/my.cnf文件
cd /etc
sudo vi my.cnf

我添加了这三个,【client】原来我没有,collation是排序规则

提示:

mysqld下面的一定要设置成character-set-server,如果是default-character-set,重新启动mysql的时候报错

Image 4.png
3、重启mysql
service mysqld restart
4、进入mysql后,查看默认字符集
 show variables like 'character_set%';
Image 5.png
6、当你重新执行作业提交的时候,乱码的那个表里的数据竟然竟然没有,Empty.......其他表的数据都进来了
Image 5.png
查看一下完整的建库语句,你会发现,改了半天的配置竟然还没改过来。。。
 show create database cbt_project;  
image.png
7、修改:
语法:ALTER DATABASE 数据库名DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
 alter database cbt_project default character set utf8 collate utf8_general_ci;
再查看一下完整的建库语句:---改过来啦
 show create database cbt_project;  
image.png
8、删除原来的表再来一遍吧,重新创建新表,然后重新执行spark-submit提交作业,在hdfs上的数据就成功在mysql上显示

乱码解决啦~~~

Image 5.png

相关文章

网友评论

      本文标题:解决:Linux下文件导入mysql中出现乱码:???

      本文链接:https://www.haomeiwen.com/subject/vafduqtx.html