mysql字符集乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql字符集乱码相关的知识,希望对你有一定的参考价值。

很不多不注意数据库的乱码情况,导致字符出错:

默认的是拉丁字符集:

技术分享图片

在这个库里面创建的表也是拉丁字符集:

技术分享图片

下面插入正常的数据:

技术分享图片

显示是正常的。

当插入中文的时候:必须要把客户端设置为拉丁字符集。

技术分享图片

另一种方法是在外面编辑xpg.sql;然后用system倒入进去

技术分享图片

mysql不乱码的5种方法及不乱吗根源;

  1. set name

   2.在sql文件里面指定set name

   3.在命令中使用--default-charcater-set=latin1

    4.修改my.cnf

不乱码的思想:客户端,服务端,库,表,程序统一

系统:系统文件,不同的系统是不一样的。centos7的[[email protected] ~]# vi /etc/locale.conf

客户端:set names  就是修改客户端字符集

服务端:修改my.cnf

库表: create database  test  default character  set utf8;

了解一下这2个命令:

show variables;

show global  status; mysql的状态

还有在不重启mysql的情况下进行修改mysql参数。

修改是set  global  key_buffer_size=

查看是:show variables  like "key_buffer%";

查看客户端,服务端,系统的字符集;

技术分享图片

分别是:客户端字符集,连接字符集,数据库字符集,返回字符集,服务端字符集,系统字符集;


执行set names到底做了什么?

set name的结果就是修改客户端,连接,以及返回结果字符集。

并只是临时修改的。


mysql命令 --default-character-set=latin1和set names的结果是一样的。


统一客户端以及服务端的字符集

[client]

default-character-set=utf8

[mysqld]

default-character-set=utf8

这样的修改需要重启mysql。


以上是关于mysql字符集乱码的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库表里中文乱码应该选哪种编码?

mysql数据库表里中文乱码应该选哪种编码?

mysql字符乱码

MySQL数据库基础——MySQL字符集与乱码解析

Mysql字符集和乱码问题

MySQL中文乱码处理_字符集转换处理