今天數據庫表修改表結構,須要添加一列:mysql
ALTER TABLE `xxxx_learn` ADD COLUMN `learn_stage_code` VARCHAR(32) NULL DEFAULT '99' COMMENT '學段' AFTER `qualified_rate`;
sql
結果一直報錯:數據庫
ERROR 1114 (HY000) at line 303: The table 'xxxx_learn' is fullide
剛開始覺得可能硬盤空間不夠,df -h 查顯示正常,全部分區都有空閒。spa
看了網上一些文章,說是 max_heap_table_size 和 max_heap_table_size 默認過小了,須要調大。不過查看該表數據量並不大,ibd數據文件才佔用了12M。個人數據庫配置文件my.cnf參數 max_heap_table_size 和 max_heap_table_size 爲64M,認爲成功的可能性不大。抱着試一試的態度命令行
將這兩個參數 max_heap_table_size 和 max_heap_table_size 都由原來的64M增大爲256M,第一次SQL命令行直接修改全局變量未成功,第二次重啓數據庫服務,結果運行SQL仍然報錯。日誌
查看錯誤日誌顯示也依然如舊:code
2015-01-13 10:01:48 7f91f01df700 InnoDB: Warning: cannot create table `xxxx`.`#sql-2ea1_2388c` because tablespace fullit
150113 10:01:48 [Warning] mysqld: The table '#sql-2ea1_2388c' is fullinnodb
再次修改參數 big_tables 爲ON仍未解決。
最後將innodb_data_file_path參數添加了一個參數選項autoextend由原來的 innodb_data_file_path = ibdata:16M 修改成 innodb_data_file_path = ibdata:16M:autoextend,重啓數據庫服務從新執行SQL語句終於經過。