2014-02-18 46 views
5

我知道這個問題曾被問過,但似乎沒有任何幫助。錯誤1114(HY000):表'XXX'已滿

2 - 3天前,我有這個問題,詢問服務器支持,他們告訴我必須將mysql從/ var移動到/ home,這是我的所有磁盤空間,這就是我所做的。然後我運行我的插入,一切都很順利,直到今天當我完成插入我的數據,並且我想在我的表中添加索引時,當我運行ALTER查詢2分鐘後,我得到此錯誤。

我已經把innodb_file_per_table = 1放入my.cnf並重新啓動了mysql,但沒有幫助。

目前我們運行在另一臺服務器上,所有的數據都很好,mysql運行良好,數據庫表大小約爲250GB,我檢查了該服務器以比較2臺服務器的設置,沒有什麼不同對我來說。

編輯: SHOW TABLE STATUS LIKE '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 

在正常工作的服務器:使用/ var/tmp中的TMPDIR這是不是大

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 
+0

以下查詢輸入是什麼 SHOW TABLE STATUS LIKE'XXX'; 看看數據長度和max_data_length 另外,我發現#2的另一個話題,可能是有用的http://stackoverflow.com/questions/730579/error-1114-hy000-the-table-is-full – Dylan

+0

@Dylan我用你要求的查詢更新我的問題。並且已經檢查了您建議的帖子。我已經使用innodb_file_per_table = 1了512M,無論我認爲這是舊信息 – CodeBird

回答

4

問題是從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 
+2

更好地將其添加到配置文件。將'tmpdir =/home/mysql/tmp'添加到'/etc/my.cnf'中的'[mysqld]'節並重新啓動MySQL –