我知道这个问题已被多次询问(并回答),但它们似乎都不是我所看到的同样的问题……
给我问题的表只有两列:第一个字段是整数,第二个字段是longtext.这是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... ...);
49 /*!40000 ALTER TABLE `large_file` ENABLE KEYS */;
50 UNLOCK TABLES;
正如您所看到的,这个转储文件来自MySQL 5.5.30,我可以将这些数据导入5.5.30.但是,当我尝试导入到5.6.x时,我得到ERROR 1118(42000)行大小太大的错误.
进入large_file表的数据(相对)很大,值的大小范围从15 MB到大约25 MB.数据全部为ASCII(base 64编码).
其他海报有很多列的问题,但我在这个表中只有两列.
longtext类型应该能够存储大约4 GB,5.5.30就是这种情况,但我发现迁移到5.6.x很困难.
谁能提供有关为何发生这种情况的见解?或者,我如何解决它?
提前致谢!