Mysql Index column size too large. The maximum column size is 767 bytes.错误解决办法

问题

今天将mysql从研发库迁移正式库的时候,遇到一个问题:Index column size too large. The maximum column size is 767 bytes.在此记录一下解决办法。

原因

产生此问题的原因是因为MySQL Innodb索引字段长度最大为767字节,如果索引大小超过767字节则会引发该错误。

解决

一、设置参数

查看:
show variables like 'innodb_file_format';

show variables like ‘innodb_large_prefix’;

修改:
set global innodb_file_format = Barracuda;

set global innodb_large_prefix = on;

二、修改建表语句

-- 建表时增加ROW_FORMAT=DYNAMIC属性
create table tb_name(
	...
)ENGINE = INNODB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

-- 如果是已经建好的表,则可以修改表
alter table tb_name ROW_FORMAT=DYNAMIC;

你可能感兴趣的:(MySQL,mysql,数据库,database)