Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation

  MySQL数据库使用插入数据时报错,看起来是编码问题,好吧,实际上就是编码问题。
  1. 先查看数据库的两类相关编码方式:

SHOW VARIABLES LIKE 'character_set_%';

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8|

| character_set_connection | utf8|

| character_set_database | latin1 |

| character_set_results | utf8|

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /home/jh/mysql/share/mysql/charsets
SHOW VARIABLES LIKE 'collation_%';


| Variable_name | Value |

+----------------------+-------------------+

| collation_connection | utf8_swedish_ci |

| collation_database | latin1_swedish_ci |

| collation_server | latin1_swedish_ci |

  2. 修改对应的编码方式

SET character_set_database =utf8;

SET character_set_results =utf8;

SET character_set_server =utf8;

SET character_set_system =utf8; /*此处utf-8也可以*/

SET collation_server = utf8_general_ci;

SET collation_database = utf8_general_ci;

  3. 检查mysql下每个数据库,表,字段是否都是utf8,不然还是会报错,然后重启Mysql。

  可参考文章:MySQL 中查看与设置数据库、数据表、表字段的编码格式

  注:还有一种硬核解决办法,先改数据库的编码方式,然后删表重建,这样就不用逐个检查表的编码方式了,可参考文章:MySQL如何删除数据库中所有的表、表中的所有数据删库有风险,慎用!


参考文章:【1】解决Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci错误-云栖社区-阿里云
     【2】mysql 如何删除数据库中所有的表 - James老赵 - 博客园
     【3】MySQL 中查看与设置数据库、数据表、表字段的编码格式,简洁清晰~ - 小异常的博客 - CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值