Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当我试图改变一张桌子时,我得到了;表格';一些表格';“已满”;。为什么?_Mysql_Sql_Configuration_Shared Memory - Fatal编程技术网

Mysql 当我试图改变一张桌子时,我得到了;表格';一些表格';“已满”;。为什么?

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目录位于硬盘上 向该表插入新数据效果很好,但更改

我在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目录位于硬盘上

向该表插入新数据效果很好,但更改它却不起作用


我的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进程,这个目录是否可以受到某种限制?