我在debian上的mysql 5.6服务器(社区版)遇到了一些问题。
我有一张约4.5 GB的桌子。当我试图改变这个表添加一列(TINYINT默认值为0)时出现ERROR 1114,如下所示:
ERROR 1114 (HY000): The table 'some table' is full
我已经阅读了这个(和其他)问题,但我找不到适合我案例的答案 ERROR 1114 (HY000): The table is full
我启用了innodb_file_per_table参数。 我还在hdd上有大约50GB的免费mysql数据和tmp目录。
将新数据插入此表可以正常工作但改变它只是不起作用。
我的MySQL目录与整个系统位于同一磁盘上。 MySQL的tmpdir位于/dev/shm
。这个目录可以以某种方式限制mysql进程吗?
答案 0 :(得分:0)
MySQL在共享内存中的临时目录中运行正常的可能性极小。无论如何,这是一种非常浪费的共享内存使用,这是一种昂贵的资源。
当您尝试ALTER
表时,MySQL使用临时目录制作表的副本。您必须这样做才能添加列。但是/dev/shm
tempdir可能比系统上的RAM大。所以你的桌子不适合tempdir。所以,MySQL抗议你的桌子已满#39; - 这意味着它太大了。
按照这篇文章中的说明操作,将数据库后台程序的临时目录放在有足够空间的硬盘上。