前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决数据库导入报错Unknown collation: 'utf8mb4_0900_ai_ci'

解决数据库导入报错Unknown collation: 'utf8mb4_0900_ai_ci'

作者头像
Lcry
发布2023-07-21 19:28:39
2.7K0
发布2023-07-21 19:28:39
举报
文章被收录于专栏:Lcry个人博客Lcry个人博客

由于一台vps在下个月就要到期了,不打算续费了,所以打算把上面的数据进行迁移一下,然后迁移数据库某个库的时候报错了Unknown collation: 'utf8mb4_0900_ai_ci',我是通过navicat直接导出库,然后导入新库,发现就报错了,都是一些小问题,记录一下解决过程。

这个错误通常是由于 MySQL 数据库版本过低导致的,因为导出的数据库版本是8.0.x,而目标mysql库是5.7.x,因为 utf8mb4_0900_ai_ci 是 MySQL 8.0.0 及以上版本引入的一种字符集排序规则。如果您的 MySQL 版本低于 8.0.0,就无法使用这种排序规则,最终导致问题。

解决方案

要解决这个问题,您可以尝试以下几种方法:

方案一: 更改字符集排序规则 将 utf8mb4_0900_ai_ci 改为 MySQL 8.0.0 以下版本支持的一种字符集排序规则,例如 utf8mb4_general_ci。您可以在创建表时指定字符集排序规则,例如:

代码语言:javascript
复制
CREATE TABLE mytable (
  id INT NOT NULL,
  name VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
  PRIMARY KEY (id)
);

方案二:升级 MySQL 版本 如果您的 MySQL 版本太低,无法支持 utf8mb4_0900_ai_ci,那么您可以考虑升级 MySQL 版本到 8.0.0 或更高版本。在 MySQL 8.0.0 及以上版本中,utf8mb4_0900_ai_ci 是默认的字符集排序规则。

方案三:修改数据库配置文件(来自GPT回答,未测试) 如果您无法更改字符集排序规则或升级 MySQL 版本,您可以尝试修改 MySQL 配置文件,启用 utf8mb4_0900_ai_ci 排序规则。在 MySQL 配置文件中添加以下配置:

代码语言:javascript
复制
[mysqld]
# 启用 utf8mb4_0900_ai_ci 排序规则
collation-server=utf8mb4_0900_ai_ci

然后重启 MySQL 服务,使配置生效。

请注意,在修改 MySQL 配置文件之前,最好先备份配置文件,以防止意外错误。

本人最终采用方案一,直接全局替换导出的SQL脚本为utf8mb4_general_ci,完美解决。

文章目录

function Catalogswith(){document.getElementById("catalog-col").classList.toggle("catalog");document.getElementById("catalog").classList.toggle("catalog")}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档