mysql5.6 报错: ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.

1.语句 (文章:https://segmentfault.com/a/1190000021131856)

mysql> CREATE TABLE permissions (
    ->     role varchar(50) NOT NULL,
    ->     resource varchar(512) NOT NULL,
    ->     action varchar(8) NOT NULL,
    ->     constraint uk_role_permission UNIQUE (role,resource,action)
    -> );
ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.

2.步骤

mysql> show variables like ‘innodb_large_prefix‘;
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| innodb_large_prefix | OFF   |
+---------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like ‘innodb_file_format‘;
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| innodb_file_format | Antelope |
+--------------------+----------+
1 row in set (0.00 sec)

mysql> show variables like ‘innodb_file_per_table‘;
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)

mysql> set global innodb_large_prefix=‘on‘;
Query OK, 0 rows affected (0.00 sec)

mysql> set global innodb_file_format=‘Barracuda‘;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘innodb_large_prefix‘;
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| innodb_large_prefix | ON    |
+---------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like ‘innodb_file_format‘;
+--------------------+-----------+
| Variable_name      | Value     |
+--------------------+-----------+
| innodb_file_format | Barracuda |
+--------------------+-----------+
1 row in set (0.00 sec)

mysql> CREATE TABLE permissions (
    ->     role varchar(50) NOT NULL,
    ->     resource varchar(512) NOT NULL,
    ->     action varchar(8) NOT NULL,
    ->     constraint uk_role_permission UNIQUE (role,resource,action)
    -> )  CHARSET=utf8 ROW_FORMAT=DYNAMIC;

mysql5.6 报错: ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes.

上一篇:linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释


下一篇:MongoDB查看执行计划