MySQL数据库乱码

在项目中保存完数据发现到了MySQL中数据成了:????

1.先确认MySQL数据库字符集编码,本数据库为5.6版本

SHOW VARIABLES LIKE 'character_set_%';

发现server和database编码集为latin1,此编码集不支持中文

1.client:客户端请求数据库数据,响应的数据为该编码集

2.connection:收到客户端发送的数据,该数据转换为该编码集

3.database&server:默认数据库的字符集。(我这两个都为latin1,所以出现乱码)

4.filesystem:文件系统上的存储格式,默认为binary(二进制)。不用修改

5.results:字面意思,结果集的字符集

6.systen:系统的存储格式

7.dir:使用的字符集的文件路径

2.知道错在哪,修改就好了

SET character_set_server = utf8; //直接命令set解决不了问题,只是表面被修改

需要修改 my.ini 文件

我的文件路径在:C:\ProgramData\MySQL\MySQL Server 5.6

有些在ProgrmFile

添加这几行代码:

[mysql]

character_set_server=utf8

[mysqld]

character_set_server=utf8 collation-server=utf8_general_ci skip-character-set-client-handshake

我单独在[server],[mysql],[mysqld].中添加character_set_server=utf8,会出现重启不了服务的问题

skip-character-set-client-handshake:参考MySQL文档,这个配置表示,忽略客户端传递的编码 集,使用服务端的设定,当我们服务端的编码集都设置为utf8,就保持了格式的统一,解决乱码问题

collation-server=utf8_general_ci:设定字符序。

字符:人类语言中最小表义符号,如’A‘,'B'

给每个字符设定的不同的数值,用数值表示字符。如A->1,B->2

这一系列数值和字符所组成的就是字符集

字符序:是指同一字符集内字符之间的比较规则

确定字符序,确定字符之间的大小关系

字符序只能对应一个字符集,而一个字符集对应多个字符序

MySQL的字符序:

1._bin是用二进制存储并比较,区别大小写,存储二进制内容时使用

2.utf8_general_ci:校对速度快,但准确度稍差,使用中英文时使用

3.utf8_unicode_ci:准确度高,但校对速度稍慢,使用德法俄等外语时使用

3.重启MySQL服务,解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青纪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值