MySQL 5.6 innodb_large_prefix不起作用

时间:2019-04-18 11:19:45

标签: mysql-5.6

操作系统:CentOS 7. Mysql 5.6

由于以下错误而无法启动数据库:指定的密钥太长;最大密钥长度为768个字节。数据库来自MariaDB 10.2.14

读SO给我解决方案,可以在/etc/my.cnf中添加以下行:

innodb_file_format = Barracuda
innodb_file_per_table = ON
innodb_large_prefix = 1

并重新启动服务。

检查是否可以看到新设置:

mysql> SHOW VARIABLES LIKE '%innodb_file_format';
 +--------------------+-----------+
 | Variable_name      | Value     |
 +--------------------+-----------+
 | innodb_file_format | Barracuda |
 +--------------------+-----------+

mysql> SHOW VARIABLES LIKE '%innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+

mysql> SHOW VARIABLES LIKE '%innodb_large_prefix';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| innodb_large_prefix | ON    |
+---------------------+-------+

重启后一切正常。

mysql> SELECT * FROM information_schema.INNODB_SYS_TABLESPACES;

显示文件格式-梭子鱼和RAW_FORMAT动态。

数据库默认字符集= utf8。

但是这里仍然限制“最大密钥长度为767字节”。

请帮忙,我错过了使大前缀有效的工作。

0 个答案:

没有答案