# Error-Specified key was too long; max key length is 767 bytes;
# Error-ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.

## 环境

– Linux
– Mysql5.7
– Mariadb 10.1.26

## 事实

在对Mysql数据库构建数据主从同步时,发现建表语句创建失败,报错:ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.

## 原因

1. Mysql5.7 设置有索引长度限制,在对varchar和text等列创建索引时受此限制。
2. Mariadb 10.1.26,没有开启row_format=Dynamic
3. 从Mysql往Mariadb进行主从同步,不兼容。

## 修复

1. set global innodb_large_prefix = ON; (OFF为767字节,ON为3072个字节)
2. 表创建语句新增row_format=Dynamic

## 补充

1. 如果需要数据库永久生效,则修改配置文件新增innodb_large_prefix = ON;,并重启数据库服务。

分类: Mysql

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。