操作系统: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字节”。
请帮忙,我错过了使大前缀有效的工作。