无法在my.cnf中调整innodb_log_file_size的大小

时间:2014-10-09 14:01:48

标签: mysql sql database innodb

我有一个臃肿的mysql 5.0声纳数据库(360gb而不是平均30gb)

此链接说为了修复它我需要导出数据库,安装mysql 5.6,导入和导出,它应该恢复到原来的大小..:SonarQube : How to reduce size of measures_data.ibd?

所以我们有一个虚拟机来测试,安装了Centos 5.6和mysql 5.6,并开始导入... 不幸的是,我总是在某些进口产品中出错......

  

[错误] InnoDB:总blob数据长度(39220742)大于   重做日志文件大小的10%(3072)。请增加   innodb_log_file_size。

这让我进入了innodb_log_file_size的许多链接,就像这样: Issue changing innodb_log_file_size

我没有错误地关闭了mysql。 我修改了my.cnf

  

innodb_log_file_size = 64M(例如目的虽然我尝试了更高的值以尝试600M 6G等。)

我删除了/ var / lib / mysql中的ib_logfile0和ib_logfile1日志,然后重新启动了服务 ,但没有任何变化......(尽管从我读到的内容中看起来并不重要)。

  

2014-10-09 13:05:09 18205 [注意] InnoDB:完成缓冲池的初始化

     

2014-10-09 13:05:10 18205 [Note] InnoDB:将日志文件./ib_logfile101大小设置为48 MB

     

2014-10-09 13:05:10 18205 [Note] InnoDB:将日志文件./ib_logfile1大小设置为48 MB

     

2014-10-09 13:05:10 18205 [Note] InnoDB:将日志文件./ib_logfile101重命名为./ib_logfile0

     

2014-10-09 13:05:10 18205 [警告] InnoDB:创建了新的日志文件,LSN = 36443469334

我在导入失败后截断了所有表数据,并将每个表数据改为使用key_block_size 8k进行压缩。我还删除了所有" DROP TABLE IF EXISTS"从备份我导入,以便我可以保持表格压缩,这是不起作用...

  

active_rule_changes | InnoDB | 10 |压缩| 379 | 86 | 32768> | 0 | 8192 | 0 | 566 | 2014-10-08 18:03:45 | NULL | > NULL | utf8_bin | NULL | row_format = COMPRESSED KEY_BLOCK_SIZE = 8 | |

我不知道该怎么办...我的日志没有出错,从我读到的内容来看,这应该是直截了当的。

继承my.cnf文件以进行数据导入。

  

innodb_file_per_table = 1

     

innodb_file_format = Barracuda

     

innodb_file_format_max = Barracuda

     

innodb_file_format_check = ON

我们将非常感谢您的想法。 感谢。

1 个答案:

答案 0 :(得分:2)

人们遇到的一个常见问题是,他们在/etc/my.cnf中有多行定义变量。定义文件中变量的 last 行获胜。因此,在配置文件中搜索另一行,将日志文件大小设置为48M。

另一种可能性是您将变量定义放在错误的组中。它属于配置文件中的[mysqld]组。

FWIW,您不需要导出和导入所有数据,除非您需要缩小ibdata1表空间。

您可以使用.ibd压缩任何单个OPTIMIZE TABLE文件。