数据库执行sql时Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (utf8mb4_general_ci,COERCIBLE), (ut

20 篇文章 1 订阅
2 篇文章 0 订阅
 Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (utf8mb4_general_ci,COERCIBLE), (utf8mb4_general_ci,COERCIBLE) for operation 'replace'

场景:由一个库往另外一个库进行数据的复制时,复制完成后的数据写入修改有问题,查询没问题,具体的报错信息是如上,当然java代码里抛出的错误也是和这个一样的:

首先百度一搜索,就是字符集的问题,执行了sql查看对比了一下,字符集设置是没有问题的;
在这里插入图片描述
在这里插入图片描述

当执行sql的时候报这个错误,经过一系列的排查后最终排查到了原来是这个表用到了触发器,但是呢,触发器的字符格式不一致问题;
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

给触发器指定编码后的执行结果:
在这里插入图片描述

总结:
1、先排查数据库的编码是否正常
2、再看是否用到了自定义函数或者是触发器,在看下他们的编码是否正常,最好给他们设置编码,防止编码不一致的问题;

show charset like 'gb%';     //查看gb语言
show charset like 'utf%';    //查看utf语言
show variables;              //“variables” 系统变量
show variables like 'char%'; //“variables” 系统变量,查看char变量


show variables like 'coll%'; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值