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

时间: 2023-10-13 12:26:36 浏览: 34
这是因为 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 字节,就可以避免上述错误了。
相关问题

Mariadb 10.1版本 导入sql 字符集为utf8 参数innodb_large_prefix=true 报错 Specified key was too long; max key length is 767 bytes

这个错误通常是因为在使用utf8字符集时,创建的索引长度超过了767字节的限制。这是因为InnoDB存储引擎在使用utf8字符集时,一个字符最多占用3个字节,而索引长度的限制是767字节,因此最多只能创建255个字符长度的索引。 解决这个问题有两种方法: 1. 修改字符集为utf8mb4,这样一个字符最多可以占用4个字节,可以创建更长的索引。在创建表时,可以指定字符集为utf8mb4,例如: ``` CREATE TABLE `table_name` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`), KEY `name_index` (`name`(255)) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ``` 2. 将innodb_large_prefix参数设置为true,这样可以允许创建更长的索引。在创建表之前,可以在my.cnf文件中添加以下配置: ``` [mysqld] innodb_large_prefix=true ``` 然后重启Mariadb服务器。 注意:修改字符集或者设置innodb_large_prefix参数可能会影响现有的数据,需要谨慎操作。同时,修改字符集时需要确保客户端也使用相同的字符集进行连接。

Mariadb 10.1版本 导入sql时 报错[ERR] 1071 - Specified key was too long; max key length is 767 bytes

这个错误通常是由于字符集和排序规则导致的。在MariaDB 10.1版本中,如果使用utf8mb4字符集,最大的键长度只能是191个字符(即767个字节)。如果超过这个限制,就会出现这个错误。 解决这个问题的方法有两种: 1. 修改字符集和排序规则 可以修改表的字符集和排序规则,将其改为utf8或者latin1,这样就可以解决这个问题。但是,这种方法不适用于需要使用utf8mb4字符集的情况。 2. 修改配置文件 在my.cnf配置文件中添加以下内容: ``` [mysqld] innodb_large_prefix=true innodb_file_format=barracuda innodb_file_per_table=true ``` 然后重启MariaDB服务即可。 这样做的原因是,innodb_large_prefix选项可以允许更长的键长度,innodb_file_format=barracuda选项可以支持更大的页大小,从而支持更长的键长度。innodb_file_per_table选项可以让每个表都使用单独的文件,从而避免文件大小限制的问题。 注意:在修改my.cnf配置文件之前,最好备份一下该文件,以免修改出错导致MariaDB无法启动。

相关推荐

最新推荐

recommend-type

The MySQL server is running with the --read-only option so it cannot execute this statement

1209 - The MySQL server is running with the --read-only option so it cannot execute this statement
recommend-type

mysql中Table is read only的解决方法小结

如果是导入还原数据 ,所以将该数据库文件夹下面所有表文件chmod成777,chown成”_mysql”,但这次问题更严重,drupal里面现实table crached。没办法,马上Google,发现其实解决起来挺容易的。 首先,找到m
recommend-type

mysql server is running with the –skip-grant-tables option

The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement 意思貌似MYSQL还运行在 –skip-grant-tables模式,如何让他回到原来的模式 第一种方法:原来在mysql.ini...
recommend-type

MariaDB小版本升级指南

按照官方文档操作,已经测试过,没有问题。...3.卸载旧版本MariaDB。 先查找已经安装的MariaDB: rpm –qa | grep MariaDB 然后使用rpm –e 命令卸载 4.安装新版本的MariaDB。 5、5.运行mysql_upgrade
recommend-type

MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)

主要介绍了MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)的解决方法,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】MATLAB用遗传算法改进粒子群GA-PSO算法

![MATLAB智能算法合集](https://static.fuxi.netease.com/fuxi-official/web/20221101/83f465753fd49c41536a5640367d4340.jpg) # 2.1 遗传算法的原理和实现 遗传算法(GA)是一种受生物进化过程启发的优化算法。它通过模拟自然选择和遗传机制来搜索最优解。 **2.1.1 遗传算法的编码和解码** 编码是将问题空间中的解表示为二进制字符串或其他数据结构的过程。解码是将编码的解转换为问题空间中的实际解的过程。常见的编码方法包括二进制编码、实数编码和树形编码。 **2.1.2 遗传算法的交叉和
recommend-type

openstack的20种接口有哪些

以下是OpenStack的20种API接口: 1. Identity (Keystone) API 2. Compute (Nova) API 3. Networking (Neutron) API 4. Block Storage (Cinder) API 5. Object Storage (Swift) API 6. Image (Glance) API 7. Telemetry (Ceilometer) API 8. Orchestration (Heat) API 9. Database (Trove) API 10. Bare Metal (Ironic) API 11. DNS
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。