【问题标题】:ERROR 1114 (HY000): The table 'XXX' is full错误 1114 (HY000): 表 'XXX' 已满
【发布时间】:2014-03-18 00:01:12
【问题描述】:

我知道以前有人问过这个问题,但似乎没有任何帮助。

我在 2 到 3 天前遇到了这个问题,询问了服务器支持,他们告诉我必须将 mysql 从 /var 移动到 /home 我的所有磁盘空间所在的位置,这就是我所做的。然后我运行我的插入,一切都很好,直到今天我完成插入数据,我想向我的表中添加索引,当我在 2 分钟后运行 ALTER 查询时,我得到了这个错误。

我已将 innodb_file_per_table=1 放入 my.cnf 并重新启动了 mysql,但它没有帮助。

目前我们在另一台服务器上运行,所有数据都很好,mysql 运行良好,数据库表约为 250GB,我在该服务器上检查了两台服务器的设置,似乎没有什么不同我。

编辑: 显示表状态,如“whois_main”

Name        Engine  Version Row_format  Rows        Avg_row_length  Data_length     Max_data_length     Index_length    Data_free   Auto_increment  Create_time             Update_time     Check_time  Collation         Checksum  Create_options  Comment     
whois_main  InnoDB  10      Compact     140859771   694             97812217856     0                   6618562560      6291456     191781518       2014-02-13 16:45:16     NULL            NULL        utf8_general_ci   NULL

在工作服务器上:

Name        Engine  Version Row_format  Rows        Avg_row_length  Data_length     Max_data_length     Index_length    Data_free   Auto_increment  Create_time             Update_time     Check_time  Collation         Checksum  Create_options  Comment     
whois_main  InnoDB  10      Compact     140472243   694             97812217856     0                   6618562560      6291456     191781518       2013-11-19 15:39:38     NULL            NULL        utf8_general_ci   NULL

【问题讨论】:

  • 以下查询输出 SHOW TABLE STATUS LIKE 'XXX' 是什么意思;看看 data_length 和 max_data_length 另外我在 Stackoverflow 上找到了另一个主题,可能有用stackoverflow.com/questions/730579/…
  • @Dylan 我用您要求的查询更新了我的问题。并且已经检查了您建议的帖子。对于 512M,我已经在使用 innodb_file_per_table=1,无论我认为这是旧信息

标签: mysql


【解决方案1】:

问题来自使用 /var/tmp 作为 tmpdir 的 mysql,它不足以复制表并创建所需的索引。我通过将 tmpdir 位置更改为包含更多空间的位置来修复它。

首先我创建了 /home/mysql/tmp 目录

  mkdir /home/mysql/tmp

然后我将该目录的所有者更改为 mysql:mysql

  chown mysql:mysql /home/mysql/tmp

然后我停止了mysql服务器

  service mysql stop

然后使用以下命令再次启动它:

  service mysql start --tmpdir=/home/mysql/tmp

【讨论】:

  • 最好将其添加到配置文件中。将tmpdir = /home/mysql/tmp添加到/etc/my.cnf中的[mysqld]部分并重新启动MySQL
猜你喜欢
  • 2010-10-18
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多