美文网首页
解决: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