关于SQLException: Illegal mix of collations (`utf8mb4_general_ci,IMPLICIT`)...错误

news2024/9/20 1:19:06

希望文章能给到你启发和灵感~
如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏 支持一下博主吧~

阅读指南

  • 开篇说明
  • 一、基础环境说明
    • 1.1 硬件环境
    • 1.2 软件环境
  • 二、报错信息
  • 三、最后

开篇说明

记录一个查询错误
场景:数据库之间某表复制移动;复制源数据库能正常使用,复制后的数据库在进行联表查询时出现的关于数据库排序规则相关的异常报错;

一、基础环境说明

考虑环境因素,大家适当的对比自己的软硬件环境情况分析~请仔细阅读硬件、软件环境

1.1 硬件环境

MacOS Monterey 版本 12.6.8 Apple M1

1.2 软件环境

开发工具:Idea 2021navicat 15
编译环境:Java 1.8.0_171,mybatis 3.0+
数据库:mysql8.0

二、报错信息

Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation ‘=’
; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1267]; Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation ‘=’; nested exception is java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation ‘=’

从异常错误信息,能定位到问题出错的点在于sql查询,错误相关是排序规则的问题;
【1】首先确认我们的数据库两边这块的配置是否是一致的;
在这里插入图片描述

【2】定位到我们的查询语句是哪句SQL;例如我这里是涉及多张表的联表查询;

SELECT
		a.id AS "id",
		a.create_by AS "createBy.id",
		a.create_date AS "createDate",
		a.update_by AS "updateBy.id",
		a.update_date AS "updateDate",
		a.remarks AS "remarks",
		a.del_flag AS "delFlag",
		a.materialId AS "materialId",
		m.model AS "model",
		a.machineNo AS "machineNo",
		m.materialname AS "materialName",
	    m.materialcode AS "materialCode",
	    m.voltage AS "voltage",
		m.unit AS "unit",
		s.status AS "status",
		a.isWaste AS "isWaste",
		a.maintenance_time AS "maintenanceTime",
		a.maintenance_content AS "maintenanceContent"
		FROM ossc_maintenance a
		INNER JOIN ossc_material m ON (m.id = a.materialId)
		INNER JOIN ossc_stock_detail s ON (a.machineNo = s.machine_no)

通过命令查询两个数据库的相关表是否有存在数据排序的规则的冲突和不同;然后我们主要用命令修改有区别的表的排序规则即可;

// 查询所有与排序规则(collation)相关的系统变量
show variables like 'collation_%';
// 查看某个表(假设表名为table_name)的创建语句,包括其字符集(character set)和排序规则(collation)等详细信息
show create table ossc_stock_detail;
// 修改了表的默认字符集和校对规则,并转换了表中所有列和数据的字符集和校对规则
ALTER TABLE ossc_material convert to CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

三、最后

【1】show variables like ‘collation_%’; 该命令在不同版本mysql或配置中返回的可能不同;如我这里是返回:
在这里插入图片描述
collation_connection:代表当前连接的排序规则。
collation_database:代表当前数据库的默认排序规则。
collation_server:代表服务器的默认排序规则。

其他可能的返回值:
character_set_connection:代表当前连接的字符集。
character_set_database:代表当前数据库的默认字符集。
character_set_results:代表查询结果的字符集。
character_set_server:代表服务器的默认字符集。
character_set_system:代表系统元数据的字符集(通常是utf8,且不可更改)。
collation_client:代表客户端的排序规则,这通常与character_set_connection和collation_connection相对应

【2】在做数据库的复制移动时,要注意两个库之间的排序规则和字符集;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1928238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx的反向代理缓存

一 .Nginx的反向代理缓存 #代理缓存路径设置缓存保存的目录 #keys_zone设置共享内存占用的空间大小 #max_size缓存大小 #inactice 超过时间,则缓存自动清理 #use_temp_path 关闭临时目录proxy_cache_path /usr/local/nginx/upsteam_cache key_zone=mycache:5m max_size=…

51单片机STC89C52RC——19.1 SG90舵机(伺服电机)

目的/效果 独立按键K1,K2 实现加舵机减角度增减,LCD1602显示舵机转角度数(上电默认90度) 一,STC单片机模块 二,SG90舵机 2.1 简介 舵机只是我们通俗的叫法,它的本质是一个伺服电机&#xf…

活动预告|想更了解流式数据湖?亚马逊云科技数据开源软件-流式数据湖 Tech Talk来啦!

活动介绍 本次活动旨在探索在亚马逊云科技上构建和使用开源数据软件产品的一些最佳实践,特别关注流式数据湖的构建。活动将在线上举行,汇聚来自 AutoMQ Apache paimon和亚马逊云科技的顶尖专家,分享他们在这一领域的最新进展和实际经验。参与…

分类预测 | Matlab实现OOA-LSSVM鱼鹰算法优化最小二乘支持向量机多特征分类预测/故障诊断

分类预测 | Matlab实现OOA-LSSVM鱼鹰算法优化最小二乘支持向量机多特征分类预测/故障诊断 目录 分类预测 | Matlab实现OOA-LSSVM鱼鹰算法优化最小二乘支持向量机多特征分类预测/故障诊断分类效果基本介绍程序设计参考资料 分类效果 基本介绍 分类预测 | Matlab实现OOA-LSSVM鱼…

【Docker】Docker 的数据管理与镜像创建

目录 一.数据管理 1.数据卷 2.数据卷容器 二.端口映射 三.容器互联 四.Docker 镜像的创建 1.基于现有镜像创建 1.1.首先启动一个镜像,基于镜像创建容器,更新容器内容 1.2.将修改后的容器提交为新的镜像,需要使用该容器的 ID 号创建新…

git取消合并:--hard 或 --merge

第一步:查了git日志 git reflog如下,运行上述命令后,可以看见所有的提交哈希(id) 第二步 查看到上述所有的提交记录后,有如下方法去回退 方法1:--hard 确定上一次提交的哈希值 git reset…

低空经济持续发热,无人机培训考证就业市场及前景剖析

随着科技的不断进步和社会需求的日益增长,低空经济已成为全球及我国经济增长的新引擎。作为低空经济的重要组成部分,无人机技术因其广泛的应用领域和显著的经济效益,受到了社会各界的广泛关注。为满足市场对无人机人才的需求,无人…

object-C 解答算法:两数之和(leetCode-1)

两数之和(leetCode-1) 题目如下图:(也可以到leetCode上看完整题目,题号1) 解答方法一: 最简单的方法就是双指针遍历数组.代码如下 - (NSMutableArray *)sumOfTwoNumbers:(NSMutableArray *)array target:(int)target {NSMutableArray * resultArray [[NSMutableArray alloc…

怎样去除视频上的水印和文字,视频水印文本移除教程

在观看和分享视频时,我们经常会遇到带有水印或额外文字的情况。这些标记有时是为了版权保护,有时则是平台的标识,但在某些情况下,它们可能会干扰视频的观赏体验。本文将向你介绍常见的视频水印类型以及如何使用简鹿水印助手去除这…

漏洞复现 | Showdoc反序列化

非常简单的一个靶场 靶场地址:https://hack.zkaq.cn/ 打开靶场,弹出了这种登录框,这也成为了后面的一个坑点,记住这个登录框。 看到了注册功能,showdoc有注册功能我们就不用尝试前台SQL注入了,直接注册…

—张pdf怎么分割成多页,怎么把一个pdf分割

在数字化时代,pdf文件已经成为我们工作和生活中不可或缺的一部分。然而,有时候我们可能会遇到需要将一张pdf文件分割成多页的情况。无论是为了便于分享,还是为了满足特定的文档格式要求,这个任务都可能变得相当棘手。但别担心&…

python数据可视化(5)——绘制饼图

课程学习来源:b站up:【蚂蚁学python】 【课程链接:【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接:【链接】】 Python绘制饼图分析北京天气 饼图,是一个划分为几个扇形的圆形统计图表&#xff…

深入解析Spring Cloud:构建分布式微服务架构的最佳实践

导语:随着互联网业务的快速发展,传统的单体应用已无法满足高并发、高可用、可扩展的需求。微服务架构以其轻量级、独立性、灵活性的特点,逐渐成为大型分布式系统的首选架构。Spring Cloud作为构建微服务架构的重要框架,为开发者提…

ElementUI el-select 组件动态设置disabled后,高度变更的问题解决办法

问题描述 Vue2 项目在使用 el-select 组件时,动态将disabled变更为了 true,元素的高度发生了变化。 问题原因 通过浏览器开发人员工具面板,发现,组件内的 input 元素被动态设置了height的样式: 在项目中检查后并…

利用MODBUS协议读取温湿度传感器的时间

因为项目需求,需要使用RS485接口的温湿度传感器,简单的记录一下。 我选用的传感器是冀欧速传感器,它的产品采用的是MODBUS协议。MODBUS是一个非常老的协议,1979年成为事实上的国际标准,目前有个国际组织进行维护&…

第七天 SpringBoot与SpringCloud微服务项目交付

Spring Cloud微服务项目交付 微服务扫盲篇 微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统WEB应用,来理解什么是微服务。 单体应用架构 如下是传统打车软件架构图: 这种单体应用比较适合于小项…

纯css实现语音播报动画效果

先来看看效果图 黑色以下代码 background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAYCAYAAAAF6fiUAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAO8SURBVGiB1ZlPaBxVHMe/v7fbkmUZErRs9/1moUtYBBfxklZR8aYg5KAgvcT25MFDvUhPTaGnHoKIlOpJ0VsPUvAgKNjSS0EPAVGKya…

AI安全系列——[第五空间 2022]AI(持续更新)

最近很长时间没有更新,其实一直在学习AI安全,我原以为学完深度学习之后再学AI安全会更加简单些,但是事实证明理论转实践还是挺困难的,但是请你一定要坚持下去,因为“不是所有的坚持都有结果,但总有一些坚持…

处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题

文章目录 1、问题描述2、详情动图3、解决思路4、解决方案5、效果展示 1、问题描述 在 electron 中使用 el-image 时,开启了懒加载后,发现只有当窗口滚动后,图片才会显示,即便图片已经处于窗口的可视区域。当拖动窗口使其尺寸变大…

CentOS配置时钟服务

一、ntp协议 1.1 基础 NTP(Network Time Protocol,网络时间协议)是用于同步计算机网络中各个设备时间的协议。 下面了解一下 ntp 的配置选项 1.) iburst 功能: 通过发送一组八个数据包来加速初始同步。 用法: server 0.pool.ntp.org i…