### 15.21.1 解决 InnoDB I/O 问题

[](<>)

故障排除步骤`InnoDB`I/O 问题取决于问题发生的时间：在 MySQL 服务器启动期间，或者在正常操作期间，当 DML 或 DDL 语句由于文件系统级别的问题而失败时。

#### 初始化问题

如果出现问题时`InnoDB`尝试初始化其表空间或日志文件，删除由创建的所有文件`InnoDB`： 全部`数据`文件和所有`ib_logfile`文件。如果您已经创建了一些`InnoDB`表，也删除任何`.ibd`MySQL 数据库目录中的文件。然后尝试`InnoDB`再次创建数据库。为了最简单的故障排除，从命令提示符启动 MySQL 服务器，以便查看发生了什么。

#### 运行时问题

如果`InnoDB`在文件操作期间打印操作系统错误，通常问题有以下解决方案之一：

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

-   确保[**mysqld**](mysqld.html)有权在这些目录中创建文件。

-   确保[**mysqld**](mysqld.html)可以正确阅读`我的.cnf`要么`我的.ini`选项文件，以便它以您指定的选项开始。

-   确保磁盘未满且未超出任何磁盘配额。

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

-   仔细检查的语法[`innodb_data_home_dir`](innodb-parameters.html#sysvar_innodb_data_home_dir)和[`innodb_data_file_path`](innodb-parameters.html#sysvar_innodb_data_file_path)价值观。特别是，任何`最大限度`中的价值[`innodb_data_file_path`](innodb-parameters.html#sysvar_innodb_data_file_path)option 是一个硬限制，超过该限制会导致致命错误。
