gpt4 book ai didi

mysql - ERROR 1118 (42000) 行大小太大

转载 作者:IT王子 更新时间:2023-10-29 00:31:35 26 4
gpt4 key购买 nike

我知道这个问题已经被问过(并回答过)很多次了,但是没有一个和我看到的是同一个问题...

给我问题的表只有两列:第一个字段是整数,第二个字段是长文本。这是 MySQL 5.5.30 的转储文件的一部分:

1 - MySQL dump 10.13  Distrib 5.5.30, for Linux (x86_64)
2 --
3 -- Host: localhost Database: mydatabasename
4 -- ------------------------------------------------------
5 -- Server version 5.5.30-log

32 DROP TABLE IF EXISTS `large_file`;
33 /*!40101 SET @saved_cs_client = @@character_set_client */;
34 /*!40101 SET character_set_client = utf8 */;
35 CREATE TABLE `large_file` (
36 `id` int(11) NOT NULL AUTO_INCREMENT,
37 `data` longtext,
38 PRIMARY KEY (`id`)
39 ) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1;
40 /*!40101 SET character_set_client = @saved_cs_client */;

43 -- Dumping data for table `large_file`
44 --
45
46 LOCK TABLES `large_file` WRITE;
47 /*!40000 ALTER TABLE `large_file` DISABLE KEYS */;
48 INSERT INTO `large_file` VALUES(38,'GyUtMTIzNDVYQ... <large data> ...);
49 /*!40000 ALTER TABLE `large_file` ENABLE KEYS */;
50 UNLOCK TABLES;

如您所见,此转储文件来自 MySQL 5.5.30,我可以将此数据导入 5.5.30。但是,当我尝试导入 5.6.x 时,出现了 ERROR 1118 (42000) Row size too large 错误。

进入 large_file 表的数据(相对)较大,值的大小范围从 15 MB 到大约 25 MB。数据全部为 ASCII(base 64 编码)。

其他发帖人遇到过大量列的问题,但我在这张表中只有两列。

longtext 类型应该能够存储大约 4 GB,5.5.30 就是这种情况,但我发现迁移到 5.6.x 很困难。

任何人都可以深入了解为什么会发生这种情况吗?或者,我该如何解决?

提前致谢!

最佳答案

检查 innodb_log_file_size 设置是否足够大 -- 是表中行中最大 BLOB 数据大小加上其他可变长度字段长度的 10 倍。

以下来自MySQL 5.6 Release Notes

InnoDB 笔记

  • 重要更改:为大型外部存储的 BLOB 字段写入重做日志可能会覆盖最近的检查点。 5.6.20 补丁将重做日志 BLOB 写入的大小限制为重做日志文件大小的 10%。 5.7.5 补丁解决了该错误,但没有施加限制。对于 MySQL 5.5,该错误仍然是一个已知限制。

    由于 MySQL 5.6 引入了重做日志 BLOB 写入限制,innodb_log_file_size 的值应设置为大于表行中最大 BLOB 数据大小加上其他可变长度字段长度的 10 倍( VARCHAR、VARBINARY 和 TEXT 类型字段)。 不这样做可能会导致“行大小过大”错误。如果您的 innodb_log_file_size 设置已经足够大或者您的表不包含 BLOB 数据,则无需执行任何操作。 (错误 #16963396、错误 #19030353、错误 #69477)

关于mysql - ERROR 1118 (42000) 行大小太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25163614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com