我在Drupal的看门狗模块上遇到了很大的问题,它为数据库创建了令人难以置信的大量条目。 MySQL因此而停止工作。当我有一些空间并且能够登录并删除模块时,我回到了早期的点。我运行了SQL命令
INSTANTIATE_TEST_CASE_P(TestBadExpressions, LogicBuilderTest,
::testing::Values(
TestParam("unittest/expressions/bad/17_no_lhs.txt", LogicBuilder::LB_VARIABLE_NO_LHS),
TestParam("unittest/expressions/bad/25_incomplete_rhs.txt", LogicBuilder::LB_PARSE_ERROR)
));
因此,当看门狗正在吃掉所有的光盘空间时,我得到了这样的响应
在看门狗删除之前查询结果
无论如何我移除了模块,桌子随之而来。我运行相同的查询,我再也看不到那个表了。
看门狗删除后的查询结果
我进入控制台并输入命令
SELECT CONCAT(table_schema, '.', table_name),
CONCAT(ROUND(table_rows / 1000000, 2), 'M') rows,
CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G') DATA,
CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G') idx,
CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
ROUND(index_length / data_length, 2) idxfrac
FROM information_schema.TABLES
ORDER BY data_length + index_length DESC
LIMIT 10;
看门狗删除后的控制台结果
所以控制台说仍然有大量的内存耗尽。为什么是这样?我应该担心吗?
答案 0 :(得分:0)
没有太多信息可以继续,我会说你已经遇到了一个" bug"
http://bugs.mysql.com/bug.php?id=1341
从这个答案中获取数据How to shrink/purge ibdata1 file in MySQL
因为你想从ibdata1回收你实际需要的空间 删除文件:
在恢复之前,您可能希望在配置文件中启用innodb_file_per_table
选项
上面的说明实际上可以仅限于jod innodb,以使过程稍微安全