我正在嘗試通過簡單的查詢將行添加到InnoDB表中:INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills');但是,當我嘗試此查詢時,得到以下信息:ERROR 1114 (HY000): The table `zip_codes` is full進行“ SELECT COUNT(*)FROM zip_codes”會給我188,959行,考慮到我在同一數據庫中有另一個包含810,635行的表,這似乎不算太多。我對InnoDB引擎缺乏經驗,并且從未在MyISAM上遇到此問題。這里有哪些潛在問題?編輯:這僅在向zip_codes表添加一行時發生。
3 回答

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
編輯:在解決與配置有關的分辨率之前,請先檢查是否沒有用完磁盤空間。
在此示例中innodb_data_file_path,您的最大尺寸似乎太小my.cnf
innodb_data_file_path = ibdata1:10M:autoextend:max:512M
您在所有innodb表組合中所承載的數據不能超過512MB。
也許您應該使用切換到每表一個innodb方案innodb_file_per_table。

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
您需要修改my.cnf中為INNO_DB表設置的限制上限。沒有為單個表設置此內存限制,而是為所有組合表設置了此內存限制。
如果您希望內存自動擴展到512MB
innodb_data_file_path = ibdata1:10M:autoextend:max:512M
如果您不知道限制或不想設置限制上限,可以像這樣修改它
innodb_data_file_path = ibdata1:10M:autoextend

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
您可能在存儲mysql表的分區(通常為/ var / lib / mysql)或存儲臨時表的分區(通常為/ tmp)中空間不足。
您可能需要:-在創建索引期間監視可用空間。-將tmpdir MySQL變量指向其他位置。這需要重新啟動服務器。
添加回答
舉報
0/150
提交
取消