记录一次更改MySQL编码导致的问题

公司项目部署的时候因为运维文档没有更新,导致在初始化数据库的时候使用的是 utf-8 的编码格式,实际上是需要使用 utf-8mb4 的编码格式

当时自己并没有注意,直到后来做有关 emoji 表情的需求的时候,才发现 utf-8 的格式根本无法存储表情字符

既然是编码出了问题,我第一想法就是直接修改数据库和表的编码格式

所以我按着 @Wonder王达 教程的指令修改了数据库编码和表的编码

然后就可以正常存储 Emoji 表情

虽然这里看着问题解决了,可以存储表情了,但是后续的表情搜索却出现了问题

当通过😊这个表情进行搜索的时候,返回结果并不是含有这个表情的结果,而是只要含有 emoji 表情就都会返回

检查了前后台相关逻辑,都没有问题,最终我把目光放在了数据库上

重新建了一个 utf-8mb4 编码的数据库,重新测试收到正确结果

猜想:可能是一开始编码以及排序格式都是 utf-8 格式,而手动更改以后排序方式并没有变,所以出现了预期之外的返回结果

教训:尽量不要手动修改数据库相关内容,一定要确保在初始化的时候就设置好!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值