我在240上的桌子上有转换问题。
ALTER TABLE db_logs ENGINE = INNODB;
谁给我
Errors during migration from MyISAM to InnoDB ...
我看到错误SQL Error (1114): The table '# sql-667e_61' is full
。
此表有60,000行,为7.8 GB。 转换达到3万行!
其他小于3GB的表可以毫无问题地进行转换。
我试图创建一个空白的相同表db_logs_innodb
,然后从同一问题db_logs表中插入它们,甚至将autocommit = 0
放在插入之前。
我查看了某些邮件列表中的值innodb_file_per_table
数据,但没有找到此变量。
我没有innodb_data_file_path
变量
没有完整的分区。不依赖于文件系统。
想法??
答案 0 :(得分:0)
更安全的方法是创建空表,更改引擎,从当前表复制数据并重命名表名:
CREATE TABLE db_logs_tmp LIKE db_logs;
ALTER TABLE db_logs_new ENGINE = INNODB;
INSERT INTO db_logs_new SELECT * FROM db_logs;
ALTER TABLE db_logs RENAME db_logs_old;
ALTER TABLE db_logs_new RENAME db_logs;
如果一切正常,并且您想破坏旧表:
DROP TABLE db_logs_old;