全球主机交流论坛

标题: mysql小白问题求助 [打印本页]

作者: radiogaga    时间: 2023-9-26 19:41
标题: mysql小白问题求助
别人给了我一个 aaa.sql 文件,文件中创建表结尾的命令是 ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

现在我有白女票的一个mysql8的云数据库

我linux小鸡的mysql是5.7,linux连接云数据库后 执行 source aaa.sql 报错 Unknown collation: 'utf8mb4_0900_ai_ci'



请问这种情况是只和我linux小鸡安装的mysql版本有关吗?
我在网上找了下 不清楚是云数据库版本太高 还是我执行导入的mysql版本太低

感谢各位
作者: zc035    时间: 2023-9-26 19:46
MYSQL版本问题。
作者: toot    时间: 2023-9-26 19:47
需要8.0版本,或者用工具转换一下
作者: radiogaga    时间: 2023-9-26 19:49
toot 发表于 2023-9-26 19:47
需要8.0版本,或者用工具转换一下

好的 那我临时再去开台机器装个mysql8

还有个问题 就是这个文件只能导入 mysql8版本的数据库吗?
作者: BackDoor    时间: 2023-9-26 19:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: toot    时间: 2023-9-26 20:00
radiogaga 发表于 2023-9-26 19:49
好的 那我临时再去开台机器装个mysql8

还有个问题 就是这个文件只能导入 mysql8版本的数据库吗? ...

utf8mb4_0900_ai_ci把这个改成5.7的也可以,这是8.0以上特有的格式
作者: afkool    时间: 2023-9-26 20:05
这种情况可能是由于你的MySQL版本不支持utf8mb4_0900_ai_ci排序规则导致的。utf8mb4_0900_ai_ci是MySQL 8.0版本引入的一种排序规则。

解决方法可以尝试以下两种方式之一:

在aaa.sql文件中将排序规则修改为你的MySQL版本支持的排序规则,比如utf8mb4_general_ci。然后再执行source aaa.sql命令导入文件。

更新你的Linux小鸡上的MySQL版本至8.0及以上版本,这样就可以支持utf8mb4_0900_ai_ci排序规则。然后再执行source aaa.sql命令导入文件。注意,升级MySQL版本可能需要谨慎操作,最好先备份数据。

此外,云数据库的版本与导入数据库的版本之间没有直接关联,但需要确保导入数据库的版本支持文件中所使用的语法和排序规则。


--------------------
要将aaa.sql文件中的排序规则改为你的MySQL版本支持的排序规则,你可以按照以下步骤进行修改:

打开aaa.sql文件,可以使用文本编辑器或者命令行编辑器。
使用搜索功能查找COLLATE=utf8mb4_0900_ai_ci这个字符串。可以使用文本编辑器中的搜索功能或者命令行中的grep命令,例如:grep "COLLATE=utf8mb4_0900_ai_ci" aaa.sql。
找到这个字符串后,将其替换为你的MySQL版本支持的排序规则,比如COLLATE=utf8mb4_general_ci。
保存修改后的aaa.sql文件。
修改完成后,你可以再次执行source aaa.sql命令导入文件,此时应该不会再报错了。记得在执行导入之前备份好数据,以防意外情况发生。
作者: 好得大恩    时间: 2023-9-26 20:11
本帖最后由 好得大恩 于 2023-9-26 20:14 编辑

7楼正解,数据库字符集比较规则的问题

utf8mb4_0900_ai_ci 是 mysql 8.0 引入的比较规则

把 utf8mb4_0900_ai_ci 统一替换成 utf8mb4_general_ci 就可以了




欢迎光临 全球主机交流论坛 (https://443502.xyz/) Powered by Discuz! X3.4