Mysql 当我试图改变一张桌子时,我得到了;表格';一些表格';“已满”;。为什么?
我在debian上的mysql 5.6服务器(社区版)有一些问题 我有一张大约4.5 GB的桌子。当我试图更改此表以添加一列(默认值为0的TINYINT)时,出现错误1114,如下所示:Mysql 当我试图改变一张桌子时,我得到了;表格';一些表格';“已满”;。为什么?,mysql,sql,configuration,shared-memory,Mysql,Sql,Configuration,Shared Memory,我在debian上的mysql 5.6服务器(社区版)有一些问题 我有一张大约4.5 GB的桌子。当我试图更改此表以添加一列(默认值为0的TINYINT)时,出现错误1114,如下所示: ERROR 1114 (HY000): The table 'some table' is full 我读过这个(和其他)问题,但找不到适合我的答案 我已启用innodb_file_per_table参数。 我还有大约50GB的免费硬盘,mysql数据和tmp目录位于硬盘上 向该表插入新数据效果很好,但更改
ERROR 1114 (HY000): The table 'some table' is full
我读过这个(和其他)问题,但找不到适合我的答案
我已启用innodb_file_per_table参数。
我还有大约50GB的免费硬盘,mysql数据和tmp目录位于硬盘上
向该表插入新数据效果很好,但更改它却不起作用
我的MySQL目录与整个系统位于同一磁盘上。MySQL的tmpdir位于
/dev/shm
中。对于mysql进程,这个目录会受到某种限制吗?mysql不太可能在共享内存中使用临时目录正常工作。无论如何,这是对共享内存的浪费,这是一种昂贵的资源
当您尝试ALTER
表时,MySQL使用临时目录复制表。您必须这样做才能添加列。但是在您的系统上,tempdir不可能比RAM大。所以你的桌子放不下tempdir。所以,MySQL抗议你的桌子“满了”——这意味着它太大了
按照本文中的说明,将数据库守护进程的临时目录放在一个有大量空间的硬盘上
不完全重复,因为在这个问题上,我从一开始就启用了innodb_file_per_table param,并且我在HDDPobsible上有可用空间?我不是linux主机,但我的所有mysql目录都与整个系统和位于/dev/shm中的mysql tmpdir位于同一磁盘上。对于mysql进程,这个目录是否可以受到某种限制?