mysql illegal mix of collations_Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation)...

mysql 中常常出现对中文支持不友好的情况常见的错误 “Illegal mix of collations for operation”

下面我们规整一下 mysql 数据库中一共涉及到哪些字符集

character-set-server/default-character-set:服务器字符集,默认情况下所采用的

character-set-database:数据库字符集

character-set-table:数据库表字符集

一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集.

character-set-client:客户端的字符集

character-set-results:结果字符集

在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集

下面分享一个解决mysql 中文字符乱码的解决方案:

修改mysql 配置

vim /etc/mysql/my.cnf

查找 “client” 一项:

94e057813834fd3d250babc6c92f438c.png

上面黄色关键词就是我们要找的 client, 紧接着在下面添加一行: default-character-set=utf8

保存退出配置文件.

然后关闭mysql服务,重新启动.

/etc/init.d/mysql stop

/etc/init.d/mysql start

然后我们进入 mysql ,查看字符集

mysql> show variables like 'character\_set\_%';

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

| Variable_name | Value |

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

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

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

7 rows in set (0.00 sec)

上面结果可以看到字符集默认支持 utf8,我们在涉及到汉字的时候不会有乱码的情况.

以上所述是小编给大家介绍的Mysql彻底解决中文乱码问题的方案(Illegal mix of collations for operation),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]和\[2\]中提到了"Illegal mix of collations"错误,这是因为在执行"find_in_set"函数时,使用了不同的排序规则(utf8_general_ci和utf8_unicode_ci)。这种混合使用是不被允许的。引用\[3\]中提到了数据库表设计,但没有提供具体的信息。根据你的问题"Illegal mix of collations for operation 'IN'",我可以解释一下这个错误的原因。 这个错误通常发生在使用"IN"操作符时,其中涉及到了不同排序规则的字段。"IN"操作符用于判断一个值是否在一个给定的列表中。当这个列表中的值与字段的排序规则不匹配时,就会出现"Illegal mix of collations"错误。 为了解决这个问题,你可以尝试以下几种方法: 1. 确保在使用"IN"操作符时,所有涉及到的字段具有相同的排序规则。可以通过修改表结构或者使用转换函数来统一排序规则。 2. 如果你无法修改表结构或者字段的排序规则,可以尝试使用转换函数将字段的排序规则进行转换,使其与列表中的值匹配。 3. 如果以上方法都无法解决问题,你可以考虑使用其他的操作符替代"IN"操作符,例如"EXISTS"或者"JOIN"操作。 总结一下,"Illegal mix of collations"错误是由于在执行"IN"操作时涉及到了不同排序规则的字段所导致的。你可以通过统一排序规则或者使用转换函数来解决这个问题。 #### 引用[.reference_title] - *1* [mysqlIllegal mix of collations for operation “find_in_set” 问题排查](https://blog.csdn.net/paul_544425851/article/details/106340016)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Illegal mix of collations for operation 'find_in_set'](https://blog.csdn.net/YangX1aoLei/article/details/105832720)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值