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

默认的是拉丁字符集:

image.png

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

image.png

下面插入正常的数据:

image.png

显示是正常的。

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

image.png

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

image.png

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

  1. set name

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

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

    4.修改my.cnf

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

系统:系统文件,不同的系统是不一样的。centos7的[root@ceshi ~]# 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%";

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

image.png

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


执行set names到底做了什么?

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

并只是临时修改的。


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


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

[client]

default-character-set=utf8

[mysqld]

default-character-set=utf8

这样的修改需要重启mysql。