Mariadb 10.1版本 导入sql 字符集为utf8为何还会报错 1071 - Specified key was too long; max key length is 767 bytes

时间: 2023-10-13 21:26:36 浏览: 133
DOCX

cent7yum安装mariadb10.1-galera集群-详细笔记文档总结

这是因为 MySQL 的 InnoDB 存储引擎使用了 B-tree 索引算法,而对于 utf8 编码的字符集,一个字符需要 3 个字节来存储。因此,当你在创建索引时,如果字段长度超过了 255 个字符,那么就会出现 "Specified key was too long; max key length is 767 bytes" 错误。 解决方法有以下两种: 1. 修改字符集为 utf8mb4,它可以支持更长的字符长度。你可以执行以下命令: ``` ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 如果你需要继续使用 utf8 字符集,那么可以通过修改配置文件来解决。在 my.cnf 文件中添加以下内容: ``` [mysqld] innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix = 1 ``` 然后重启 MySQL 服务器即可。这样可以将索引长度扩展到 3072 字节,就可以避免上述错误了。
阅读全文

相关推荐