美文网首页
彻底解决mysql中文乱码

彻底解决mysql中文乱码

作者: 三万_chenbing | 来源:发表于2018-01-29 18:43 被阅读0次

mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。

这里写图片描述

无法插入中文字符:

我们可以看到表的默认字符集是latin1. 所以我们在创建表的时候就需要指定表的字符集:

这样在Linux里面可以访问并且可以插入与访问这个表了。

这里写图片描述

虽然在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8。

这里写图片描述

而且数据库的编码也存在问题。

这里写图片描述

这里我们可以看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.下面我们就来看看如何解决mysql乱码情况。

查看数据库编码:

这里写图片描述

修改字符编码:

这里写图片描述

我们可以看到字符集已经修改成都是utf8了。但是这里有一个问题,那就是我们重新打开一个命令窗口然后查看数据编码就会出现下面的画面:

这里写图片描述

mysql设置变量的范围默认是session范围。如果设置多个会话的字符集那么需要设置global范围:Set [global|session] variables …

当我们跨会话查看mysql字符集都会看到都是utf8。如果你以为万事大吉了的话,那么你就大错特错了。

当我们数据库重启的时候,你们发现设置global范围的值又变成latin1了。

这里写图片描述

不要怕,下面就教你终极大招:

修改mysql配置文件/etc/my.cnf。

请注意这几个参数配置的位置,不然可能会启动不起来mysql服务:

这里写图片描述

OK。这下如果你重启mysql服务也会发现它的字符集是utf8.

这里写图片描述

而且我们创建表的时候不需要指定字符编码,它默认就是utf8

这里写图片描述

.启动mysql:输入 net start mysql

.停止mysql:输入 net stop mysql

我看网上很多答案都是直接在session级别设置mysql的字符编码,这是治标不治本的方法。我们还是要从源头上解决这个问题。那就是修改mysql默认的配置文件,把它的字符集修改成能够使用中文字符的UTF8就OK了。

还可能是 mysql 客户端 版本 问题:

String url = "jdbc:mysql://192.168.1.1:3306/aaa?useUnicode=true&characterEncoding=utf-8&useSSL=false";

利用sql语句进行修改:

1、ALTER TABLE `test` DEFAULT CHARACTER SET utf8;该命令用于将表test的编码方式改为utf8;

2、ALTER TABLE `test` CHANGE `name` `name` VARCHAR(36) CHARACTER SET utf8 NOT NULL; 该命令用于将表test中name字段的编码方式改为utf8

相关文章

  • 彻底解决mysql中文乱码

    mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下...

  • 2月28日:彻底解决Idea控制台的中文乱码问题

    彻底解决Idea控制台的中文乱码问题 一.出现问题 tomcat输入到idea控制台的信息出现中文乱码。 二.解决...

  • MySQL导出CSV文件

    最近接触到mysql比较多,遇到mysql文件导出csv文件,存在格式问题和中文乱码问题,以此记录 中文乱码问题 ...

  • MySQL 5.7中文乱码

    在排除tomcat和前端没有出现中文乱码的情况下,MySQL 5.7在存储中文时依然出现乱码,一般是由于mysql...

  • Mac上Mysql日常

    前言 最近一直在项目中遇到编码问题,mysql上是中文,到了页面就成乱码,反之,页面是中文,mysql上的乱码,m...

  • 彻底搞定乱码-自定义过滤器(filter)-3

    彻底解决get/post中文乱码 1.包装模式过滤器 spring boot 中使用@Component 或者@C...

  • MySQL5.7的初始安装问题

    MySQL5.7 解决利用sqoop导入MySQL中文乱码的问题 sudo vim /etc/mysql/mysq...

  • linux下mysql数据库中文乱码

    关于linux下mysql数据库中文乱码的解决方法 mysql的默认编码是latinl不支持中文,进入mysql数...

  • mysql,idea 调试出现中文乱码

    调试的时候出现了中文乱码 形如 “口口”, 然后先看数据库,mysql这边的确出现了中文乱码 设置字符集

  • 解决IDEA乱码问题

    问题一、tomcat执行后控制台输出乱码 解决方案:在控制台输出彻底解决Tomcat控制台输出中文乱码1修改tom...

网友评论

      本文标题:彻底解决mysql中文乱码

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