• Linux下MySQL出现乱码的解决方法


     

     

    开发环境

    cent os 6.5

    mysql

    springboot

    duird

    故障描述

    本地开发环境没有任何问题,上传到服务器后发现提交的表单内容只要是中文直接变成 ???

    解决方式

    错误尝试:

    一开始怀疑是代码的问题,于是从百度上找了一些方法,但是很多都是无效的,比如配置

    都没有解决问题,后来经过调试发现,java代码是没有问题的,直到插入数据库的最后一步,传递过来的数值还是中文,于是查看了mysql编码发现了问题。

    正确的解决方式:

    很多时间mysql安装时指定的编码都是默认编码(latin1),而我们开发一般都是用UTF8的编码,我们可以通过 show variables like 'character%'; 查看数据库编码

    从网上看到可以通过执行

    SET character_set_client = utf8; 
    SET character_set_connection = utf8; 
    SET character_set_database = utf8; 
    SET character_set_results = utf8; 
    SET character_set_server = utf8; 
    

    结果在尝试执行上面查看编码的语句后发现确实所有编码已经变成了UTF8,但是程序提交后还是乱码,根本解决不了问题,其实这只是一种假象。此种方式只在当前状态下有效,当重启数据库服务后失效。

    这里特别申明下这种方式,不要无故采坑

    下面真正的干活就要来了,如果需要一劳永逸的解决mysql的乱码还是需要从my.cnf下手

    首先找到my.cnf在服务器中的位置(/etc/my.cnf,每个人服务器可能目录不同,这里只是我的服务器路径),执行vim my.cnf

    增加图中画红线的两部分代码即可

    编辑完毕后 qw! 强制退出

     重启mysql服务 service mysql restart,出现 

    然后再回到程序中执行form表单提交,发现中文乱码的问题就已经完美解决了

    这里也正常了,好了 乱码的问题到此就已经完美解决了。

  • 相关阅读:
    【问题 & 解决】VS Code 添加第三方库提示
    最大公约数、最小公倍数、辗转相除法的求解和证明
    移动APP开发框架盘点2:Web移动前端框架大全
    你好,2021
    reacthookform 使用小结
    github查看仓库的clone量
    neo4j切换数据库方法,简单好用!知识图谱
    数据平滑处理均值|中值|SavitzkyGolay滤波器
    2021年总结
    使用vscode Container开发调试envoy
  • 原文地址:https://www.cnblogs.com/blueskyli/p/9673677.html
Copyright © 2020-2023  润新知