事情是这样晒的,有两个独立部署的web服务器环境A和B,A的数据库和B的数据库几乎是一样的(库、表、字段、数据),也有可能没发现不一样的地方。A正常,B请求异常,如下所示:
### Error querying database. Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '<=' ### The error may exist in URL [jar:file:/data/yangtun_show/6_cgp/scp-cgp.jar!/BOOT-INF/classes!/mapper/CaseRegistrationMapper.xml] ### The error may involve com.bjzhianjia.scp.cgp.mapper.CaseRegistrationMapper.getStatisByDept-Inline ### The error occurred while setting parameters ###
SQL: xxxxxxx and ?<=crt_time and crt_time <= ? and yyyyyyyyyyy### Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '<=' ; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1267]; Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '<='; nested exception is java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '<=
这样的问题出现了,好像没见过(不要慌,拿起想起拍个照,然后发个朋友圈)。定位问题需要从头开始,哪个个web接口发起的请求,后台做了什么处理,数据库执行的时候SQL现场是什么样子的。
思路有了,开始在B中还原现场。从web发起请求的接口是http://i.love.you:forever/queryPath?startTime=2020-04-00+00:17:16&endTime=2020-07-22+00:17:16,复盘成功。发现了奇怪的地方,请求参数中startTime=2020-04-00+00:17:1有00,换成01试试http://i.love.you:forever/queryPath?startTime=2020-04-01+00:17:16&endTime=2020-07-22+00:17:16,成功了。 问题解决了!
Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '<='; 看来并不可怕,但是。。。。。。
why?A行,B不行原因是什么呢?
应该有两种可能性:第一是web程序对日期解析支持不同,可能受操作系统影响;第二是数据库本身支持对异常日期的解析。
继续探索。。。
分享到:
相关推荐
这里我们将深入探讨UTF8和UTF8MB4两种编码格式,以及它们各自的排序规则`utf8mb4_unicode_ci`和`utf8mb4_general_ci`。 首先,UTF-8是一种广泛使用的Unicode字符编码方案,它允许使用1到4个字节来表示不同的字符。...
用了这么长时间,发现...那么在utf8_bin中你就找不到 txt = ‘A’ 的那一行, 而 utf8_general_ci 则可以. utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。 utf8_general_cs 区分大小写,如果
CREATE TABLE mytable (...) CHARACTER SET utf8 COLLATE utf8_general_ci; ``` 这样,数据库、表和客户端之间的字符集就保持一致了,应该能够避免中文乱码的问题。 在处理包含中文数据的应用程序时,确保应用程序...
swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' 这个错误,所以在stackover flow 中找到了对这个数据库,以及数据表中进行更改字符集的方法。 SET collation_connection
错误信息"ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation ‘>’"显示了两个不兼容的字符集和校对集:`utf8_general_ci`和`latin1_...
Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '= 所以,自己把还没产生数据的表都删除,重新建立ut8表 此文件sql语句都是没产生数据的表,直接可以用py或者...
MySQL多表join时报错如下:[Err]1267 – Illegal mix of collations(utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‘= 就是说两个表的排序规则(COLLATION)不同,无法完成比较。...
技术点整理所用到的技术点并方便自己近期翻看巩固小程序的登录(wx.getUserInfo()接口调整)mysql命令(knex)新增、查询、联表查询小程序获取地理...list时遇到mysql错误错误提示'Illegal mix of collations (utf8mb4...
例如,错误`ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '>'`就是由于在比较DATE_FORMAT的结果和TIMEDIFF的结果时,它们的字符集和...
这里,`utf8_general_ci`是utf8字符集的排序规则,`ci`表示大小写不敏感。 2. 改变表的编码方式: 要更改单个表的字符集,使用如下命令: ```sql ALTER TABLE `表名` CONVERT TO CHARACTER SET utf8 COLLATE ...
在Java开发过程中,有时会遇到“illegal key size”的错误,这通常与Java加密算法的限制有关。这个错误信息表示尝试使用的密钥长度超过了Java默认允许的最大值,这涉及到Java Cryptography Extension (JCE)的政策...
代码如下:select a.man_id,man_name,d.sex_name,zw_name,c.money from man as a left join zw as b on a.zw_id=b.zw_id left join zw as c on a.man_id=c.man_id — 同时关联zw字段,通过表别名区别开 left ...
在Java编程环境中,有时会遇到一个常见的错误:"java.security.InvalidKeyException: Illegal key size"。这个错误通常是由于Java安全策略的限制导致的,尤其是当你尝试使用超过默认限制的密钥长度(例如,超过128位...
Undocumented_Secrets_of_MATLAB_Java_Programming.part2 Undocumented_Secrets_of_MATLAB_Java_... As far as I know, everything in this book is legal and within the bounds of the Matlab license agreement.
Undocumented_Secrets_of_MATLAB_Java_Programming.part3 Undocumented_Secrets_of_MATLAB_Java_... As far as I know, everything in this book is legal and within the bounds of the Matlab license agreement.
在本案例中,问题的核心在于两个表之间的字段字符集不兼容,导致了"非法的混合排序规则"(Illegal mix of collations)错误。这个错误意味着在执行等于操作('=')时,涉及到了具有不同字符集的列。 首先,我们来...
Users of the SoftDevice must verify the compatibility of their SoftDevice/IC combination for development and for production. Compatibility information is found in the nRF51 Series Compatibility ...