有没有办法在 MySQL 中删除具有待处理事务的 InnoDB 表或数据库(最好在文件系统级别)?
发生了什么:
我使用 MySQL 5.5.28 并运行LOAD DATA INFILE…
将一个巨大的数据集(300M 行)导入到 InnoDB 表中。我以前没用过set autocommit = 0;
。不幸的是,mysqld
在导入过程中被停止了。
当我重新启动时mysql
,它会尝试使用如下消息回滚填充系统日志的事务:
mysqld_safe[4433]:121212 16:58:52 InnoDB:等待 1 个活动事务完成
问题是回滚现在运行了超过 25 小时,在此期间 mysqld
不接受任何套接字连接。
我不能只是删除/var/lib/mysql/*
并从头开始,因为这台机器上还有一些其他 InnoDB 数据库/表。但是,有问题的表是单独数据库中的唯一表。删除整个表或整个数据库不是问题,因为我可以在之后重新导入所有数据。