文章缩略图

SQL数据库导入报错:[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'的解决办法

2024-03-25 21:57:15 计算机网络 17368 阅读需87分钟
图标

本文最后更新于2024-03-25 21:57:15已经过去了375天 请注意内容时效性

热度 31 评论 0 点赞


SQL.jpg

[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci' 这个错误通常发生在尝试将一个使用了较新collation(字符集排序规则)的SQL数据库导入到一个MySQL服务器版本较低,不支持这个collation的环境中。utf8mb4_0900_ai_ci 是一个较新的collation,它可能在MySQL 8.0及更高版本中可用,但在旧版本中不可用。

解决这个问题的方法通常有以下几种:

方法一:升级MySQL服务器版本

如果你能够控制MySQL服务器的版本,最简单的解决方法是升级MySQL服务器到支持utf8mb4_0900_ai_ci这个collation的版本,比如MySQL 8.0或更高。

方法二:修改collation

如果你不能升级MySQL服务器,你需要在导出数据库之前修改collation为服务器支持的collation。你可以使用mysqldump工具导出数据库,并通过编辑SQL文件来替换collation。

例如,你可以使用文本编辑器打开导出的SQL文件,并查找所有的utf8mb4_0900_ai_ci字符串,将它们替换为服务器支持的collation,比如utf8mb4_unicode_ci

方法三:在导入时指定collation

在导入SQL文件时,你也可以尝试指定一个不同的collation。这通常可以在创建表或指定列时通过ALTER TABLE语句来完成。

例如:

sql复制代码ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这会将表your_table_name的字符集转换为utf8mb4,并使用utf8mb4_unicode_ci作为collation。

方法四:在my.cnf或my.ini配置文件中指定

如果MySQL服务器允许在配置文件中指定默认collation,你可以在my.cnf(Linux系统)或my.ini(Windows系统)中设置默认collation。

例如:

ini复制代码[mysqld]  collation-server = utf8mb4_unicode_cicharacter-set-server = utf8mb4

修改配置文件后,需要重启MySQL服务以使更改生效。

注意事项

在进行上述任何更改之前,请确保备份你的数据库和配置文件,以防出现不可预见的问题。此外,修改collation可能会影响数据库的性能和数据的排序方式,所以在生产环境中进行此类更改之前,最好先在测试环境中验证其效果。

方法五:最简单的方法

用记事本或者打开sql文件,将文件中的所有utf8mb4_0900_ai_ci替换为utf8_general_ciutf8mb4替换为utf8保存后再次运行导入sql文件,导入成功


继续阅读本文相关话题
更多推荐
发表评论

共有[ 0 ]人发表了评论

🥰 😎 😀 😘 😱 🤨 🥵 😔 😤 😡 😭 🥱 🤡 ☠️ 💖 🤖 💢 💥

评论列表
暂无评论

暂时没有评论,期待您的声音!

品牌认证 W3C认证 MYSSL认证 TrustAsia 安全签章
扫码访问手机版
二维码图片