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

东海大仙


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文件,导入成功


手机扫描二维码访问

文章版权声明:除非注明,否则均为海东博科原创文章,转载或复制请以超链接形式并注明出处。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码