根据 mysql 文档( Docs ),为了在步骤 #4 中更改 innodb-log-file-size 我需要删除二进制日志。我对此有一些担忧和疑问。我当前的 innodb-log-file-size 值为 5MB。所以我假设我的二进制日志文件是每个 5MB(最大)。当我查看 bin-log 目录时,我有一堆文件名,如“mysql-bin.000001”、“mysql-bin.000002”等。我相信这些是二进制日志文件,但它们都是比 5MB 大一点。有 2 个 5 MB 的文件(ib_logfile0、ib_logfile1)。所以我的问题是

  • 哪些文件是我的“二进制日志”?
  • 我需要删除哪些?

  • 提前致谢

    最佳答案

    InnoDB 日志位于 ib_logfile0 和 ib_logfile1 中。这些是文件的大小innodb_log_file_size

    要调整 InnoDB 日志的大小,您首先需要 干净地关闭 mysqld 。这将确保日志中的任何更改都已刷新到您的表空间中。干净关机很重要,因为如果您不执行此步骤,您很有可能会丢失数据。

    干净地关闭 mysqld 后,ib_logfiles 是多余的。您必须rm它们以更改其大小。

    当您重新启动 mysqld 时,InnoDB 会注意到文件丢失,并根据 my.cnf 文件中的 innodb_log_file_size 变量以新大小创建新文件。因此,请确保在重新启动之前编辑该文件,否则它只会创建新的 5MB 文件。

    MySQL 5.6 使这个过程更简单一些。您不需要对日志文件进行 rm,但您确实需要重新启动 mysqld 以使新的日志文件大小生效。它在 5.6 中的工作方式是,如果这些文件的大小与 config 变量不同,MySQL 会自动再次干净地重新启动(以确保文件不包含任何未刷新的更改),然后 InnoDB 调整文件大小最后启动时。

    其他文件(mysql-bin.000001 等)是二进制日志。这些可能会增长到 max_binlog_size(默认为 1GB),但二进制日志的大小会有所不同,因为每当您重新启动 mysqld 或执行 FLUSH LOGS 时都会创建新日志。无论如何,它们与 InnoDB 日志无关。

    PS:您可能会喜欢这篇文章: How to calculate a good InnoDB log file size

    关于MySQL 如何更改 innodb-log-file-size,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19911551/

    10-13 06:25