一招解决MySql Specified key was too long; max key length is 767 bytes
背景
今天迁移环境上阿里云的DMS建表
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 DEFAULT CHARSET=utf8mb4
直接提示 Specified key was too long; max key length is 767 bytes
并让我打开MySQL常见错误处理方法 · 语雀 查看解决方式
十三、Specified key was too long; max key length is 767 bytes
原因:mysql的“字符串类型”(varchar、char等)字段作为索引时,有一个约束单个索引字段存储长度不能超过767字节。
按照表为utf8mb4字符集时,一个字符需要4个字节存储。那么最大定义索引前缀为 767/4=191.即字段a varchar(500)要建立索引时需要定义前缀索引 a(191),不能超过191的一个值。
处理方法:utf8为3个字节存储一个字符,gbk为2个字节存储一个字符,依次类推得到对应字符串类型字段的前缀索引长度修正即可。结构设计修改路径:索引=》包含列=》前缀长度,进行设置。
如果是【库表同步】请直接联系你的DBA修改为和【源】数据库一致的编码。如何查看我的业务DBA是谁?
PS:索引767问题排查
显然这个方式并不是我想要的,很多业务已经测试过不可能去缩小字段
解决办法
1. 查看MySQL数据库当前的配置;
show variables like 'innodb_large_prefix';
2. 修改配置
在SQLYog、Navicat、命令行都可以执行以下语句
set global innodb_large_prefix=ON;//开启不限制索引长度
执行次命令需要一定的权限,如没有需要找管理员
3. 建表时需要指定ROW_FORMAT=Dynamic或compressed
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 DEFAULT CHARSET=utf8mb4 ROW_FROMAT=DYnamic;
现在就可以不报错了!!!!
一招解决MySql Specified key was too long; max key length is 767 bytes相关推荐
- mysql 报错 Specified key was too long; max key length is 767 bytes,开启系统变量:innodb_large_prefix
mysql 报错 Specified key was too long; max key length is 767 bytes 当mysql数据库的字符集使用了utf8mb4,就很容易在执行建表sq ...
- mysql导入报错1071_导入sql文件报错:1071 Specified key was too long; max key length is 767 bytes...
一.背景 今天把服务器的数据库导出了一份sql文件,准备导入到本地,但是在导入的时候,报了个错: Syntax error or access violation: 1071 Specified ke ...
- MySQL5.6建索引时遇到 Specified key was too long; max key length is 767 bytes错误提示解决办法
一.错误提示 Specified key was too long; max key length is 767 bytes: 二.原因分析 在数据库中,索引的字段设置太长了,导致不支持.[根本原因: ...
- mysql索引长度超过767bytes问题解决。Specified key was too long; max key length is 767 bytes
mysql索引长度超过767bytes问题解决. 错误信息: Specified key was too long; max key length is 767 bytes MySQL的InnoD ...
- mysql导入报错1071_mysql报错:Specified key was too long; max key length is 767 bytes | 吴老二...
最近部署的mysql服务,在导入数据后,查询数据时提示:ERROR 1071 (42000) : Specified key was too long; max key length is 767 b ...
- Mysql报错:Specified key was too long; max key length is 767 bytes
在执行mysql脚本时,报错:Specified key was too long; max key length is 767 bytes. 解决办法: 一.修改mysql的字符集为uft8 再次执 ...
- sqlalchemy Specified key was too long; max key length is 767 bytes的解决办法
sqlalchemy出现以下错误: sqlalchemy Specified key was too long; max key length is 767 bytes 原因 字符集设成了utf8mb ...
- Hive集成Mysql作为元数据时,提示错误:Specified key was too long; max key length is 767 bytes...
在进行Hive集成Mysql作为元数据过程中.做全然部安装配置工作后.进入到hive模式,运行show databases.运行正常,接着运行show tables:时却报错. 关键错误信息例如以下: ...
- mysql 767 bytes_max key length is 767 bytes
Specified key was too long;max key length is 767 bytes https://blog.csdn.net/gladyoucame/article/det ...
最新文章
- plsql连接oracle无响应,求教 pl/sql连接本机数据库是未响应问题
- Chrome web 开发用到的插件
- 用 Redis 处理 jsonwebtoken 生成的 Token
- 轴自定义图标_9种吸引人的图标样式,能给你的设计带来良好的用户体验
- cas跨域单点登录原理_CAS实现SSO单点登录原理
- ubuntu mysql自动备份_Ubuntu下mysql数据库自动备份脚本
- Knative 基本功能深入剖析:Knative Serving 之服务路由管理
- JAVA的extends使用方法
- mysql数据库,当数据类型是float时,查询居然查询不出数据来
- 超炫酷的HTML5视频播放器 支持手机移动页面
- NavigatorContent使用皮肤
- Python之turtle画小狗、狮子头和小黄人
- 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day1--领航
- 《power BI 视频7》六合一图表案例
- ns3网络设置模块 PointToPoint
- 纯原生js自定义弹窗
- 微机原理8086——8251A串口芯片protues仿真
- 论文阅读——Towards Adversarially Robust Object Detection
- linux系统键盘关机快捷键,Linux三种关机/重启系统的命令
- iOS AudioQueue实现音频的录制和播放(附Demo)
热门文章
- [C语言]口令比较填空:阅读程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 下面程序比较用户键盘输入的口令userInput与内设的口令password是否相同。若相同,
- FFmpeg解码视频并保存为图片
- Sphinx (Sphinx(斯芬克司))
- 大争之世智造为基,瑞科智能将亮相第21届SIMM深圳机械展
- oracle opm系统,ORACLE EBS OPM标准功能培训资料-OPM库存-V1.0
- python获得用户输入的一段文字将这段文字进行垂直输出_Python练习题2020
- 手把手教你系列 - Particle粒子特效(完整代码部分)
- 用python解决数据结构与算法_python中各种数据结构与算法的解决技巧
- 实战:Traefik 高级配置2-2022.1.18
- 机器语言-汇编语言-高级语言各自优缺点