很不多不注意数据库的乱码情况,导致字符出错:
默认的是拉丁字符集:
在这个库里面创建的表也是拉丁字符集:
下面插入正常的数据:
显示是正常的。
当插入中文的时候:必须要把客户端设置为拉丁字符集。
另一种方法是在外面编辑xpg.sql;然后用system倒入进去
mysql不乱码的5种方法及不乱吗根源;
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%";
查看客户端,服务端,系统的字符集;
分别是:客户端字符集,连接字符集,数据库字符集,返回字符集,服务端字符集,系统字符集;
执行set names到底做了什么?
set name的结果就是修改客户端,连接,以及返回结果字符集。
并只是临时修改的。
mysql命令 --default-character-set=latin1和set names的结果是一样的。
统一客户端以及服务端的字符集
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
这样的修改需要重启mysql。