MySQL 建索引時 Specified key was too long; max key length is 767 bytes 錯誤的處理
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
先檢查一下是不是數據庫被限制了索引的大小
SHOW variables like 'innodb_large_prefix'
如果查詢的值是OFF的話 執行下面命令
SET GLOBAL INNODB_LARGE_PREFIX = ON;
執行完了 之后 還得查看當前的innodb_file_format引擎格式類型是不是BARRACUDA
執行
SHOW variables like 'innodb_file_format'
如果不是的話則需要修改
SET GLOBAL innodb_file_format = BARRACUDA;
創建表的時候指定表的 row format 格式為 Dynamic 或者 Compressed,如下示例:
-
create table idx_length_test_02
-
(
-
id int auto_increment primary key,
-
name varchar(255)
-
)
-
ROW_FORMAT=DYNAMIC default charset utf8mb4;