在localhost上运行MySQL列宽限制但在AWS服务器上没有

时间:2017-11-04 02:36:31

标签: mysql amazon-web-services amazon-rds

我有一个包含650列和1行的MySQL表。 我知道这是一个糟糕的设计(我继承了)并且它将被移动到一个简单的两列布局,但此刻我正在尝试诊断一个不同的问题,以便能够理解它。 我不想解决设计问题,如果它会掩盖我目前面临的系统配置问题。

背景:我有一个系统,它在构建Web应用程序实例时采取以下步骤:

  1. 使用skeleton.sql文件构建数据库的“版本0”。
  2. 运行一个upgrade.sh脚本,该脚本查看“升级”目录并...
  3. ...运行每个升级文件,以正确的顺序更改数据库结构(包括向已经太宽的表中添加新列)。
  4. 问题是,在我的localhost服务器(WAMP)上运行步骤3中的一个脚本时,我在尝试向该表添加更多列时遇到错误:

    Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126.

    同样,我知道这个表在理论上太“宽”了,但我不知道我可以运行什么查询来计算它的宽度。此外,当我运行它时,我没有在我的RDS服务器上收到此错误,因为我不知道如何获取表的“宽度”,我不知道如何比较(尽管给定localhost的VARCHAR已填充对于FEWER字符,无论如何,我希望它更小。

    我在StackOverflow上阅读的所有内容都表示所有表都具有相同的“宽度”限制,无论引擎如何。我怀疑这是一个配置问题,但如果这是一个硬限制,为什么它在我的RDS服务器上运行而不是localhost?

1 个答案:

答案 0 :(得分:0)

我唯一的想法是字符代码差异?你看过那个吗? (抱歉无法评论太新的用户)。