7

我过去没有做太多调整,所以这可能相对容易,但是我遇到了问题。这就是我所做的:

  1. 停止 MySQL
  2. 编辑 my.cnf(更改innodb_log_file_size
  3. 删除 ib_logfile0/1
  4. 启动 MySQL

开始正常但是所有 InnoDB 表都有 .frm 文件无效错误,状态显示 InnoDB 引擎被禁用所以我显然回去,删除更改,一切都恢复正常。

我能够更改我尝试过的所有其他变量,但我似乎无法找出即使删除日志文件后 InnoDB 无法启动的原因。我错过了什么吗?

谢谢。

编辑:粘贴下面的日志 - 看起来它似乎仍然可以找到日志文件,即使它们不存在?

关闭:

090813 10:00:14  InnoDB: Starting shutdown...
090813 10:00:17  InnoDB: Shutdown completed; log sequence number 0 739268981
090813 10:00:17 [Note] /usr/sbin/mysqld: Shutdown complete

修改后启动:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
090813 11:00:18 [Warning] 'user' entry 'root@XXXXX.com' ignored in --skip-name-resolve mode.
090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.81-community-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Edition (GPL)
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'

在我纠正之前,它只是相同错误的垃圾邮件

当它在重新创建日志文件后启动时,它必须在与我相同的位置查找。

4

5 回答 5

15

首先,我必须指出,在对 InnoDB 数据文件进行任何更改之前,应该阅读13.2.5。添加、删除或调整 InnoDB 数据和日志文件的大小。

您指出的步骤几乎是正确的。建议在进行此类更改之前进行备份。让我们看看你发生了什么:

错误消息

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!

是由更改 innodb_log_file_size 的大小而不删除旧文件引起的。ib_logfile0/1可能您在更改后第一次运行 mysqld 时忘记删除 de 。讯息

090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections.

表明您解决了这个问题(通过删除ib_logfiles)。但是,在删除它们时,您会产生另一个问题。XXXX\User.frm 的数据损坏或 InnoDB 引擎出现问题。

要确保 InnoDB 已启用,请在 mysql 提示符下运行此命令:

show variables like "%inno%";

结果列表中必须有“ have_innodb = YES”。有时当 InnoDB无法启动(值为NODISABLED)时,会Incorrect information in file出现该消息。
- 如果这是问题所在,您已经更改了阻止 InnoDB 引擎正常启动的其他内容(datadir 的权限或 tmpdir 的权限,其他 innodb 变量(您没有显示完整的日志。)等)。查看更改或放置.cnf文件(之前和之后)。
- 如果 InnoDB Engine 是,YES那么您必须修复表。(如果是这种情况,请添加评论,我将在此处添加信息。我现在懒得做。)

于 2009-08-20T17:55:28.110 回答
1

错误中的第一行表明您尚未删除 ib_logfile0。你能确认你正在重命名/删除正确的吗?

于 2009-08-18T20:03:08.327 回答
0

您是否尝试过使用 SQL 客户端来编辑该innodb_log_file_size字段?

我个人喜欢SQuirreL

于 2009-08-24T16:20:05.623 回答
0

检查事项:

  • 设备上是否有足够的空间来创建该大小的日志文件?此行为可能来自完整设备。
  • 是否使用错误的设置创建了日志文件?
  • 您的日志文件路径未显示为绝对路径。只是为了笑,看看您的驱动器上是否有任何其他位置包含 ib_logfile0。可能是一个愚蠢的错误。
于 2009-08-19T12:42:55.163 回答
0

我怀疑您删除了错误的日志文件。寻找其他 ib_logfile* 文件。也许您正在使用 innodb_log_group_home_dir ?

如果是这样,请确保您从那里删除了 ib_logfiles 而不是 datadir。

于 2009-09-30T14:03:56.107 回答