问题描述 开发环境执行项目相关的sql建表语句时正常,但是将该sql语句放到QA测试环境的数据库上执行时,出现报错:Specified key was too long:max key length is 767 bytes。 原因分析 报错提示很明显,建表语句中有一个字段是varchar(200),这样的定义在utf8mb4编码下是不允许的,utf8mb4编码下每个字符最大的字节...
liquibase.exception.DatabaseException: Specified key was too long; max key length is 1000 bytes 处理: 在MySQL启动配置文件my.ini中添加或修改: default-storage-engine=INNODB 重启mysql服务 原因: MySQL默认使用MyISAM engine,而MyLSAM引擎会有key长度的限制, 超过1000bytes就会报错,所以要将Mysql引擎修改为Innodb。
字段设置unique索引的时候,是Mysql的字段设置的太长了,把相关字段的长度改了一下就好了。建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度后再按下面比例乘起来不能超过限定的key长度1000:latin1 = 1 byte = 1 character uft8 = 3 byte = 1 character gbk = 2 byte = 1 ...
建立索引时,数据库计算key的长度是累加所有Index用到的字段的char长度;再按下面比例相乘不能超过限定的key长度1000:latin1=1 byte=1 character;uft8=3 byte=1 character;gbk=2 byte=1 character。解决方法:修改字段长度;修改mysql默认的存储引擎。参考资料 mysql:Specified key was too long; max...
开发环境执行项目相关的sql建表语句时正常,但是将该sql语句放到QA测试环境的数据库上执行时,出现报错:Specified key was too long:max key length is 767 bytes。 原因分析 报错提示很明显,建表语句中有一个字段是varchar(200),这样的定义在utf8mb4编码下是不允许的,utf8mb4编码下每个字符最大的字节数为4,所...
建表: create table information_schema_tables (table_name varchar(255) not null, create_time varchar(255), engine varchar(255), table_comment varchar(255), primary key (table_name)) engine=MyIsAm 修改有两种办法: 1.修改搜索引擎engine=inndb ...
开发环境执行项目相关的sql建表语句时正常,但是将该sql语句放到QA测试环境的数据库上执行时,出现报错:Specified key was too long:max key length is 767 bytes。 原因分析 报错提示很明显,建表语句中有一个字段是varchar(200),这样的定义在utf8mb4编码下是不允许的,utf8mb4编码下每个字符最大的字节数为4,所...
开发环境执行项目相关的sql建表语句时正常,但是将该sql语句放到QA测试环境的数据库上执行时,出现报错:Specified key was too long:max key length is 767 bytes。原因分析报错提示很明显,建表语句中有一个字段是varchar(200),这样的定义在utf8mb4编码下是不允许的,utf8mb4编码下每个字符最大的字节数为4,所以...