美文网首页
2020-01-03

2020-01-03

作者: 牡羊座_cc68 | 来源:发表于2020-01-03 15:02 被阅读0次

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

    相关文章

      网友评论

          本文标题:2020-01-03

          本文链接:https://www.haomeiwen.com/subject/navzoctx.html