我想通了,显然我必须编辑 SQL 文件本身,并且必须在每个使用 INNODB 引擎的 CREATE TABLE 查询末尾添加ROW_FORMAT=DYNAMIC。
所以我改变了这个:
CREATE TABLE `xxx` (
`visit_id` bigint(20) NOT NULL AUTO_INCREMENT,
`visitor_cookie` mediumtext NOT NULL,
`user_id` bigint(20) NOT NULL,
`subscriber_id` bigint(20) NOT NULL,
`url` mediumtext NOT NULL,
`ip` tinytext NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`visit_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
进入
CREATE TABLE `xxx` (
`visit_id` bigint(20) NOT NULL AUTO_INCREMENT,
`visitor_cookie` mediumtext NOT NULL,
`user_id` bigint(20) NOT NULL,
`subscriber_id` bigint(20) NOT NULL,
`url` mediumtext NOT NULL,
`ip` tinytext NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`visit_id`)
) ROW_FORMAT=DYNAMIC ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
然后我将文件重新导入到本地服务器上,然后重新导出到实时服务器……现在它已经上线了……终于。
我仍然觉得有点奇怪,一旦超过一定数量的字符(747),mySQL 不会自动将行设置为动态,并且它仍然可以在现有数据库中工作,即使它不应该工作......但也许 WAMP 与实时服务器的环境设置不同。
无论如何谢谢大家!