• 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘, Time: 0.222000s 解决


    解释

    utf8mb4_0900_ai_ciMySQL 8.0 之后的默认字符集和校对。它提供了一种新的方式来存储和比较字符数据。其中:

    • utf8mb4 是字符集(charset),表示该字符集支持最大为4字节的UTF-8字符。
    • 0900 是 Unicode 校对的版本,这是 MySQL 8.0 使用的新版本。
    • ai 表示 “accent insensitive”(不区分重音符号)。
    • ci 表示 “case insensitive”(不区分大小写)。

    原因:

    您可能正在从一个 MySQL 8.0(或更高版本)的实例导出数据,并试图将其导入到一个更早版本的 MySQL 实例中,而早期的 MySQL 版本不支持 utf8mb4_0900_ai_ci 校对。

    解决方法一:

    1. 更新目标MySQL版本:升级您的MySQL版本到8.0或更高版本,这样您就可以直接使用这个字符集和校对。

    2. 修改SQL文件:使用文本编辑器打开导出的SQL文件,将所有的 utf8mb4_0900_ai_ci 替换为 utf8mb4_unicode_ci(或您的MySQL版本支持的其他校对)。然后,您可以尝试再次导入。

    例如,将:

    CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
    
    • 1

    替换为:

    CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    
    • 1
    1. 更改导出设置:如果您使用工具(如phpMyAdmin、MySQL Workbench等)导出数据,可能可以在导出时更改字符集和校对的设置。

    在采取上述措施之前,建议备份您的数据库和SQL文件,以防止数据丢失或损坏。

    解决方法二:

    如果您的目标数据库版本是MySQL 5.7,那么您应该将字符集和校对方式更改为MySQL 5.7支持的版本。utf8mb4 字符集在 MySQL 5.7 中是支持的,但 utf8mb4_0900_ai_ci 校对是不支持的。

    以下是如何修改导出的SQL文件以使其兼容MySQL 5.7:

    1. 使用文本编辑器打开导出的SQL文件。

    2. 找到并替换所有的 utf8mb4_0900_ai_ciutf8mb4_unicode_ci

    例如,将:

    CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci
    
    • 1

    替换为:

    CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
    
    • 1
    1. 同样地,将:
    CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
    
    • 1

    保留不变,因为 utf8mb4_bin 在MySQL 5.7中是支持的。

    1. 保存SQL文件。

    2. 尝试再次导入修改后的SQL文件到您的MySQL 5.7数据库。

  • 相关阅读:
    基于模糊预测与扩展卡尔曼滤波的野值剔除方法
    SpringCloud 组件Gateway服务网关【断言工厂&过滤器工厂】
    LeetCode-剑指43-1-n整数中出现1的次数
    基于STM32的温控风扇
    vue3 Composition 组合式API+TypeScript基本使用
    可视化学习:如何用WebGL绘制3D物体
    面试经典sql(大数据):同时在线人数
    三次握手和队列
    前端 读取/导入 Excel文档
    (续)SSM整合之spring笔记(AOP 基于注解的AOP之准备工作)(P100)
  • 原文地址:https://blog.csdn.net/weixin_39973810/article/details/133298822