【问题标题】:MySQL - Error 1118 Row size too large (> 8126) - No access to sql-configMySQL - 错误 1118 行大小太大(> 8126) - 无法访问 sql-config
【发布时间】: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 = OFF
  • Tabel-Typ = InnoDB

任何帮助将不胜感激。无论是可能的解决方案还是对实际问题本身的理解。谢谢先进!

【问题讨论】:

标签: php mysql joomla


【解决方案1】:

在此处查看有关 行大小限制 的 MySQL 文档: https://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html 可能有用。

【讨论】:

    猜你喜欢
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2019-05-17
    • 2014-09-13
    • 2014-12-31
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多