gpt4 book ai didi

mysql - innodb_large_prefix 在哪里添加

转载 作者:行者123 更新时间:2023-11-29 17:26:20 28 4
gpt4 key购买 nike

我遇到了一些问题。

你看,我已经使用 WAMP 在本地创建了一个 WordPress 网站,一切似乎都工作正常,直到我尝试将 MySQL 数据库导入到新的实时网站时出现错误:

“#1709 - 索引列大小太大,最大列大小为 767 字节”

在此处查看完整错误的图像:
See image of the complete error here

现在我在这里找到了可能导致此问题的一些答案:

MySQL error: The maximum column size is 767 bytes

这里:

mysql change innodb_large_prefix

尽管我了解需要以代码方式实现什么,但我并不知道代码实际需要放置在哪里。

除了导入、导出和编辑数据库凭据之外,我从来不需要使用 MySQL 做任何其他事情,这对我来说有点陌生。尽管我非常乐意稍后更深入地研究它,但此时我只想让我的实时网站正常运行。

最佳答案

好吧,我想通了,显然我必须编辑 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 只是与实时服务器有不同的环境设置。

无论如何,谢谢大家!

关于mysql - innodb_large_prefix 在哪里添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50947260/

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