【问题标题】:AWS-RDS Max Allowed Packet Value Cant Be ChangedAWS-RDS 最大允许数据包值无法更改
【发布时间】:2019-06-08 03:54:45
【问题描述】:

我现在在 Amazon RDS 设置中有一个 MySQL 数据库,它需要能够充当数据库并能够存储一些平面文件。

它工作了一段时间,直到我注意到它没有存储超过 1MB 的东西......我不知道为什么。所以我更深入地研究了 RDS 并了解了参数组。它似乎是数据库本身配置的一个子集,所以我认为max_allowed_packet 值是问题所在,因此我将其设置为更高的值。

但是,我仍然无法进行超过 1MB 的上传,所以我意识到还有另一个名为 mysqlx_max_allowed_packet 的参数,它的值设置为大约 1MB,但我无法更改它。

有没有人知道如何解决这个问题或者是否可行?

【问题讨论】:

  • mysqlx_max_allowed_packet 并不重要,除非您使用的是X protocol,因此可能不相关。我建议您需要退后一步,考虑与max_allowed_packet 相关的错误不是静默错误。应该抛出异常。如果您的代码忽略它们(例如在需要您检查返回值以查看查询是否成功的语言中),并且默默地丢弃大值,您需要找到并修复该问题,然后做出反应,因为此类错误消息可能会指示.
  • 嗯... 1MB 是我见过的max_allowed_packet 中的小。 16MB 是典型的; 1GB 并非闻所未闻。
  • 这可能会有所帮助 [stackoverflow.com/a/23832059/3266552]

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


【解决方案1】:

我希望这些步骤有所帮助。

  1. 转到您的 RDS 仪表板并点击 Parameter Groups
  2. 点击创建数据库参数组,将其命名为“LargeImport”(确保您选择的数据库参数组系列与您的实例版本匹配)并编辑参数。
  3. 增加“LargeImport”上的“ma​​x_allowed_pa​​cket”以适应您的导入大小(有效值为 1024-1073741824)。
  4. 增加“wait_timeout”参数以适应您的导入大小。 (有效值为 1-31536000 秒)。
  5. 保存您的更改。
  6. 点击左侧栏中的Instances,然后选择您的实例。
  7. 点击Instance Actions并选择Modify
  8. Parameter Group更改为新的“LargeImport”组,然后点击Continue
  9. 点击“修改数据库实例”。
  10. 更改完成后,再次点击Instance Actions并重启您的实例。

一旦您的实例重新启动,您应该能够执行更大的 SQL 导入。

完成导入后,将实例参数组切换回默认参数组并重新启动。

【讨论】:

  • 我将把它标记为答案,因为这里的所有状态都会起作用,我的最终问题最终是我在 NginX 中遇到的配置问题,我什至没有考虑过,因为我从来没有设置网络服务器,但当我在我的 rds 实例上看不到任何访问日志时感到困惑
  • 如果您有阅读器,您可以故障转移到它,然后重新启动旧的写入器并再次进行故障转移。与您一起减少停机时间。
【解决方案2】:

我建议您测试您的更改是否生效,因此请继续在您的 mysql 实例上使用 mysqlworkbench 并启动查询:

显示“max_allowed_pa​​cket”等变量;

如果不是,例如,您可以开始将其更改为 64 MB(根据您的要求调整参数,但请记住,对于 aws,1GB 是最大限制)。还请记住,在修改 RDS 实例后,您应该重新启动以应用您的更改。

【讨论】:

    猜你喜欢
    • 2013-12-09
    • 2016-08-30
    • 2020-02-18
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2021-06-16
    • 2015-05-17
    • 2023-04-07
    相关资源
    最近更新 更多