xxl-job执行sql文件报错的解决办法:
[SQL] Query tables_xxl_job start
[ERR] 1709 - Index column size too large. The maximum column size is 767 bytes.
原因:sql文件默认建库采用的utf8mb4编码,也就是1个字符占4个字节,registry_key和registry_value长度是255
换算成字节数=255*4=1,020 超过了字段索引最大长度所以 767,所以报错。
1、运行show variables like 'innodb_large_prefix' 如果结果是OFF,那么执行 set global innodb_large_prefix = ON;
2、打开tables_xxl_job.sql文件,找到下面的建表语句,添加 (ROW_FORMAT=DYNAMIC)
CREATE TABLE `xxl_job_registry` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`registry_group` varchar(50) NOT NULL,
`registry_key` varchar(255) NOT NULL,
`registry_value` varchar(255) NOT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`)
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4;
3、再次执行导入成功(需要将之前导入的表删除再次执行)
网友评论