14.22.1 对 InnoDB I/O 问题进行故障排除

InnoDB I/O 问题的疑难解答步骤取决于问题发生的时间:在 MySQL 服务器启动期间,或在正常操作期间 DML 或 DDL 语句由于文件系统级别的问题而失败时。

Initialization Problems

如果在InnoDB尝试初始化其 table 空间或日志文件时出现问题,请删除InnoDB创建的所有文件:所有ibdata文件和所有ib_logfile文件。如果已经创建了一些InnoDBtable,还请从 MySQL 数据库目录中删除这些 table 的相应.frm文件,以及如果使用多个 table 空间则删除任何.ibd文件。然后,再次尝试创建InnoDB数据库。为了最简单的故障排除,请从命令提示符启动 MySQL 服务器,以便您了解正在发生的情况。

Runtime Problems

如果InnoDB在文件操作期间显示 os 错误,则通常该问题具有以下解决方案之一:

  • 确保InnoDB数据文件目录和InnoDB日志目录存在。

  • 确保mysqld拥有在这些目录中创建文件的访问权限。

  • 确保mysqld可以读取正确的my.cnfmy.ini选项文件,以便它以您指定的选项开头。

  • 确保磁盘未满,并且没有超出任何磁盘配额。

  • 确保为子目录和数据文件指定的名称不冲突。

  • 仔细检查innodb_data_home_dirinnodb_data_file_path值的语法。特别是,innodb_data_file_path选项中的任何MAX值都是硬限制,超过该限制会导致致命错误。