【发布时间】:2016-05-20 07:02:50
【问题描述】:
我们在 AWS RDS 上使用 innodb 引擎获取 MySQL 数据库,MySQL 版本为 5.6.19。
尝试在表格中添加列时,我们收到以下错误消息:
ERROR 1041 (HY000):内存不足;检查 mysqld 或其他进程是否使用了所有可用内存;如果没有,您可能必须使用 'ulimit' 以允许 mysqld 使用更多内存,或者您可以添加更多交换空间
我们运行来改变表的脚本如下:
ALTER TABLE mytablename ADD COLUMN temp_colume varchar(255) NULL AFTER temp_firstcolumn;
我们的 RDS 位于 db.m3.2xlarge 上,内存为 30GB: 我们的 innodb 缓冲区大小是 DBInstanceClassMemory*3/4 ~= 24GB
我们可以成功地重新创建已更改列的表,但在更改表时出现错误。
有人遇到同样的问题吗?
【问题讨论】:
-
在您执行
ALTER TABLE时,是否有很多更新? -
我还检查了显示数据库不忙的显示进程列表
-
启动 MySQL 守护进程的进程中的
ulimit -a怎么样?您在处理失败之前查看了内存使用情况吗? -
如果你没有改变my.cnf中的任何设置,你应该用RDS写一个bug,声称他们的默认设置会导致“内存不足”。
标签: php mysql amazon-web-services innodb aws-rds