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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:  开发环境cent os 6.5mysqlspringbootduird故障描述本地开发环境没有任何问题,上传到服务器后发现提交的表单内容只要是中文直接变成 ???解决方式错误尝试:一开始怀疑是代码的问题,于是从百度上找了一些方法,但是很多都是无效的,比如配置都没有解决问题,后来经过调试发现,java代码是没有问题的,直到插入数据库的最后一步,传递过来的数值还是中文,于是查看了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表单提交,发现中文乱码的问题就已经完美解决了

 

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

开开心心编码,快快乐乐生活。
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2天前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
38 17
|
7天前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
68 28
|
25天前
|
SQL 关系型数据库 MySQL
【YashanDB 知识库】YashanDB 支持 MySQL 多表更新语句的解决方法
【YashanDB 知识库】YashanDB 支持 MySQL 多表更新语句的解决方法
|
27天前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】YashanDB 支持MySQL多表更新语句的解决方法
本文介绍了在YashanDB中处理MySQL多表更新语句的方法。由于YashanDB默认不支持多表更新(报错YAS-04344),可通过启用兼容性参数`SQL_PLUGIN = 'MYSQL'`解决,或改写SQL语句实现相同功能。文章通过具体示例说明了多种改写方法,包括根据共同列更新单个或多个字段、添加过滤条件以及基于多个共同列的更新场景。涉及的表结构和数据展示了实际操作过程,帮助用户顺利迁移和使用YashanDB。
|
2月前
|
Linux
SecureCRT连接Linux时乱码问题
本文详细介绍了在使用SecureCRT连接Linux服务器时出现乱码问题的解决方法,包括设置SecureCRT字符编码、检查和配置Linux服务器字符编码、调整终端设置等。通过这些方法,您可以有效解决SecureCRT连接Linux时的乱码问题,确保正常的终端显示和操作。希望本文能帮助您在实际操作中更好地解决类似问题,提高工作效率。
80 17
|
4月前
|
关系型数据库 MySQL Linux
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
201 8
|
4月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
312 7
|
4月前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
Linux vr&ar
linux删除乱码文件
操作前请明确自己在做什么,一些小白不明所以自己乱操作造成数据丢失不去找自身原因却将责任推于本文。数据宝贵,谨慎操作! 一些乱码文件不可以通过普通的rm命令进行管理。 可以通过删除i节点的方式删除。
676 0