Unknown collation: ‘utf8mb4_0900_ai_ci’
今天导入数据库时遇到了这个问题
经过查询,解决了这个问题
1、问题的原因
其原因就是数据库的字符集和排序规则问题
如图所示,这个数据的语句中有标明其使用的 字符集 和排序规则
-- ----------------------------
-- Table structure for admin_menu
-- ----------------------------
DROP TABLE IF EXISTS `admin_menu`;
CREATE TABLE `admin_menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`path` varchar(64) DEFAULT NULL,
`name` varchar(64) DEFAULT NULL,
`name_zh` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`icon_cls` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`component` varchar(64) DEFAULT NULL,
`parent_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
也就是 utf8mb4 和 utf8mb4_0900_ai_ci
而我本地所装的是MySQL 5.7,但是在MySQL5.7中选择字符集为 utf8mb4 时,默认utf8mb4_general_ci 为排序规则 ,并且没有utf8mb4_0900_ai_ci 作为可选择的排序规则
2、解决方式
使用批量替换,将 utf8mb4_0900_ai_ci 替换为 utf8mb4_general_ci 即可成功导入
这里我以VS Code为例进行演示说明
Ctrl + F 打开搜索框,再输入utf8mb4_0900_ai_ci 进行全局检索
然后 按 Ctrl+shift+L ,进行批量修改
即可成功导入