【发布时间】:2018-01-22 16:42:49
【问题描述】:
我知道这个问题被问了很多,我也找到了很多建议,但对我来说没有一个可行的。我的网站是 siteground.com 上的 hostet。到目前为止一切正常,突然我得到了
错误:1118 行大小太大 (> 8126)。将某些列更改为 TEXT 或 BLOB 或使用 ROW_FORMAT=DYNAMIC 或 ROW_FORMAT=COMPRESSED 可能会有所帮助。在当前行格式中,768 字节的 BLOB 前缀是内联存储的。
在“随机”的基础上。
实际上,我的整个网站(joomla 3.7.4 / PHP 7.0.22 /sql-server: 5.6.36-82.1-log - Percona Server (GPL),Release 82.1,Revision 1a00d79)没有很多自定义代码因此不再可用。
现在我明白这与总行大小有关,但作为数据库和 php 业余爱好者,我仍然不明白。
- 一行中的列是否过多,或者其中的数据过多 列?
- “行大小太大 (> 8126)”是什么意思?目前在那里 每行有 81 列,根据 phpMyAdmin,整个表 需要 32KiB 的数据,16KiB 的索引和总共 48KiB。如果我 看看 Joomla 系统的其他表格,这是一个非常小的 数据量(由序列化数组、一些文本和 就是这样)
- 为什么这个问题是“一夜之间”出现的 - 我这边的 db-strukture 没有更新或任何更改。
- 如何确定或查看实际的 Row 大小,以便“尝试”arround 以满足 db-settings 需求?
我能解决这个问题吗?或者如果托管方不能或不会更改设置中的某些内容,我是否会“搁浅”?
到目前为止我做了什么:
由于我无法访问服务器设置,因此我开始限制所有“int”和“char”。无效后,我开始将所有类型更改为“medium-txt”和“tiny-txt”。在第 3 轮中,我将所有类型更改为“txt”,但结果也没有改变。我另外将所有utf8_general_ci 转换为utf8mb4_general_ci。基本上我做了所有我能找到的,但没有成功。
正如你从上面的文字中看到的那样,我就像一个迷失在树林里的盲人,在没有任何专业知识的情况下拼命尝试一切来解决这个问题。
附加信息(转至 phpMyAdmin):
-
innodb log file size = 128MiB innodb_strict_mode = OFFTabel-Typ = InnoDB
任何帮助将不胜感激。无论是可能的解决方案还是对实际问题本身的理解。谢谢先进!
【问题讨论】:
-
你看到this question了吗?