转换innodb失败错误1114表已满

uubf1zoe  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(227)

我在240号桌上有个转换问题。一 ALTER TABLE db_logs ENGINE = INNODB; 谁给了我

Errors during migration from MyISAM to InnoDB ...

我看到错误了 SQL Error (1114): The table '# sql-667e_61' is full .
此表有60000行,为7.8 gb。转换到30000行!
其他小于3gb的表在转换时没有问题。
我试图创建一个完全相同的空白表 db_logs_innodb 然后从同一个problem db\u logs表中插入它们 autocommit = 0 插入之前。
我看了价值观 innodb_file_per_table 一些邮件列表上的数据,但我没有找到这个变量。我没有电话 innodb_data_file_path 变量
没有完全分区。与文件系统无关。
思想??

fcg9iug3

fcg9iug31#

更安全的方法是创建空表、更改引擎、从当前表复制数据并重命名表名:

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;

如果一切正常,你想毁掉旧table:

DROP TABLE db_logs_old;

相关问题