2020-01-03

2020-01-03  本文已影响0人  牡羊座_cc68

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、再次执行导入成功(需要将之前导入的表删除再次执行)

上一篇 下一篇

猜你喜欢

热点阅读