關于SQLException: Illegal mix of collations (`utf8mb4_general_ci,IMPLICIT`)...錯誤

希望文章能給到你啟發和靈感~
如果覺得文章對你有幫助的話,點贊 + 關注+ 收藏 支持一下博主吧~

閱讀指南

  • 開篇說明
  • 一、基礎環境說明
    • 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;例如我這里是涉及多張表的聯表查詢;

SELECTa.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 aINNER 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.pswp.cn/web/45312.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45312.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45312.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

曠野之間 16 – AI 代理、AI 代理基礎設施、平臺和比較

在本文中,我們將研究 AI 代理、AI 代理基礎設施、市場上最流行的 AI 代理平臺、它們的比較以及 AI 代理的未來 我們將按以下順序討論這些主題 1. 關于人工智能代理 2. 人工智能代理在行業中的應用 3. AI代理基礎設施 4. 最受歡迎的 AI 代理平臺及比較 5.您將如…

【筆記】nginx命令

查看 啟動 通過./nginx啟動nginx之后 可以在虛擬機中進入/usr/local/nginx/html 去查看cat index.html 也就是此頁面的源代碼 進入vim /etc/profile 配置完之后保存退出 source /etc/profile 手動重載資源 隨后就可以在任意位置重載資源了 nginx -s reload 部署靜態資源就把靜…

兩項國際設計獎,支持雙設備—悠律Ringbuds pro開放式藍牙耳機體驗

在音頻設備領域,開放式耳機對比入耳式耳機的優勢就是既能聽到耳機內的聲音又能感知環境音,很適合在戶外以及辦公時使用,今天分享一款新品牌悠律UMELODY——悠律凝聲環Ringbuds pro,它采用氣傳導耳掛式設計,佩戴舒適、安…

【人工智能】 知識表示與推理(八數碼 + 傳教士與野人渡河)

目錄 一、八數碼難題 1. 需求分析 2. 數據結構、功能模塊設計與說明 2.1 算法思路 2.2 數據結構 3. 核心代碼與測試結果說明 3.1 核心代碼 3.2 測試結果說明 4. 存在的問題與體會 4.1 存在的問題 4.2 體會 二、傳教士與野人渡河 1. 需求分析 2. 數據結構、功能模…

基于EMQX+Flask+InfluxDB+Grafana打造多協議物聯網云平臺:MQTT/HTTP設備接入與數據可視化流程(附代碼示例)

摘要: 本文深入淺出地介紹了物聯網、云平臺、MQTT、HTTP、數據可視化等核心概念,并結合 EMQX、Flask、InfluxDB、Grafana 等主流工具,手把手教你搭建一個支持多協議的物聯網云平臺。文章結構清晰,圖文并茂,代碼翔實易懂&#xff0…

2024-07-14 Unity插件 Odin Inspector1 —— 插件介紹

文章目錄 1 介紹2 模塊3 學習目的 1 介紹 ? Odin Inspector 是 Unity 的一個插件,擁有強大、自定義和用戶友好的編輯器,而無需編寫任何自定義編輯器代碼,使得編程過程中的數據可視化更容易實現。 ? 具體功能包括: 更舒適美觀…

軟件設計師(中級)備考視頻教程

一、視頻介紹 本視頻主要包括軟件設計師系統學習教程,通過學習本視頻,可以幫助考生高效且深入地掌握軟件設計師資格考試核心知識,全方位覆蓋考試要點,從而輕松備戰考試。視頻不僅涵蓋了考試所需的全面知識體系,還通過直…

Linux--USB驅動開發(二)插入USB后的內核執行程序

一、USB總線驅動程序的作用 a)識別USB設備 1.1 分配地址 1.2 并告訴USB設備(set address) 1.3 發出命令獲取描述符 b)查找并安裝對應的設備驅動程序 c)提供USB讀寫函數 二、USB設備工作流程 由于內核自帶了USB驅動,所以我們先插入一個U…

Google Colab 云端硬盤路徑讀取

加載云端硬盤 需要在左上角點擊這個文件圖標; from google.colab import drive drive.mount("/content/drive") # 掛載云端硬盤import os path"/content/drive/MyDrive/TextClassificationCustom" os.chdir(path) # 以路徑path作為當前工作目…

在 SwiftUI 中的作用域動畫

文章目錄 前言簡單示例動畫視圖修飾符使用多個可動畫屬性使用 ViewBuilder總結 前言 從一開始,動畫就是 SwiftUI 最強大的功能之一。你可以在 SwiftUI 中快速構建流暢的動畫。唯一的缺點是每當我們需要運行多步動畫或將動畫范圍限定到視圖層次結構的特定部分時&…

docker emqx 配置密碼和禁用匿名連接

mqtt版本emqx/emqx:4.4.3 1.首先把鏡像內目錄/opt/emqx/etc拷貝到本地 2.做映射 3.allow_anonymous, false改成true 4. 5.MQTTX連不上的話看看下圖的有沒有打開

【nginx】nginx的優點

目錄 一、高性能1.1 高并發處理1.2 低內存消耗1.3 快速響應 二、高擴展性2.1 模塊化設計2.2 動態模塊擴展 三、高可靠性3.1 核心框架穩定3.2 進程管理3.3 負載均衡與健康檢查3.4 熱部署 四、功能豐富4.1 反向代理4.2 HTTP緩存4.3 安全功能 五、易于配置和管理5.1 配置文件簡單5…

windows下環境變量開啟方式

第一種方法: 使用快捷鍵打開“運行”對話框:按下 Win R 組合鍵,這將打開“運行”窗口。 輸入系統屬性命令:在“運行”窗口中輸入 sysdm.cpl 然后按回車鍵。這將打開“系統屬性”對話框。【sysdm.cpl是"System Data Manager…

【Go系列】Go的指針

承上啟下 我們在前面的文章中,首先介紹了GO的基礎語法,然后介紹了Goroutine和channel這個最具有特色的東西,同時介紹了Sync和context,以及在上篇文章中詳細距離說明了Go里面用于高并發的多種寫法。基礎的使用方法也告一段落了&…

Linux多線程編程-哲學家就餐問題詳解與實現(C語言)

在哲學家就餐問題中,假設有五位哲學家圍坐在圓桌前,每位哲學家需要進行思考和進餐兩種活動。他們的思考不需要任何資源,但進餐需要使用兩根筷子(左右兩側各一根)。筷子是共享資源,哲學家們在進行進餐時需要…

Qt qml詳細介紹

一.基本類型 QML的基本類型包括了很多不同的類型,這些類型可以用于定義用戶界面元素、屬性和信號。以下是一些常用的QML基本類型及其詳細介紹: 數值類型:包括整數類型(int、uint、short、ushort等)和浮點數類型&#…

c++ :運算符重載函數中的細節

賦值運算符重載與拷貝構造函數 (1)區分初始化時的賦值(一般就叫初始化),和非初始化時的賦值(一般就叫賦值) (2)實驗驗證初始化和賦值時各自對應 避免賦值運算符中的自賦值 (1)自賦值就是Person a; a a; (2)自賦值如…

鞭炮插畫:成都亞恒豐創教育科技有限公司

鞭炮插畫:年味里的絢爛記憶 在歲末年初的溫柔時光里,總有一抹色彩,能瞬間喚醒沉睡的年味——那便是鞭炮插畫中躍動的紅與金,成都亞恒豐創教育科技有限公司 它們不僅僅是紙與墨的交織,更是情感與記憶的橋梁&#xff0c…

自適應手機版大學職業技術學院網站模版源碼系統 帶完整的安裝代碼包以及搭建部署教程

系統概述 隨著智能手機的普及和移動互聯網技術的飛速發展,用戶越來越傾向于通過移動設備訪問網站。對于大學職業技術學院而言,一個能夠自適應各種屏幕尺寸、操作流暢、內容豐富的移動端網站,不僅能夠提升用戶體驗,還能有效擴大學…

最短路之樸素版的dij板子

模板&#xff1a; 注意這個只是單向的雙向的需要在更新一次 #include<bits/stdc.h>using namespace std;typedef long long ll; typedef pair<int, int>PII; const int N2e510; const int MOD 998244353; const int INF0X3F3F3F3F; const int dx[]{-1,1,0,0,-1,…