14.22.1 对 InnoDB I/O 问题进行故障排除
InnoDB
I/O 问题的疑难解答步骤取决于问题发生的时间:在 MySQL 服务器启动期间,或在正常操作期间 DML 或 DDL 语句由于文件系统级别的问题而失败时。
Initialization Problems
如果在InnoDB
尝试初始化其 table 空间或日志文件时出现问题,请删除InnoDB
创建的所有文件:所有ibdata
文件和所有ib_logfile
文件。如果已经创建了一些InnoDB
table,还请从 MySQL 数据库目录中删除这些 table 的相应.frm
文件,以及如果使用多个 table 空间则删除任何.ibd
文件。然后,再次尝试创建InnoDB
数据库。为了最简单的故障排除,请从命令提示符启动 MySQL 服务器,以便您了解正在发生的情况。
Runtime Problems
如果InnoDB
在文件操作期间显示 os 错误,则通常该问题具有以下解决方案之一:
-
确保
InnoDB
数据文件目录和InnoDB
日志目录存在。 -
确保mysqld拥有在这些目录中创建文件的访问权限。
-
确保mysqld可以读取正确的
my.cnf
或my.ini
选项文件,以便它以您指定的选项开头。 -
确保磁盘未满,并且没有超出任何磁盘配额。
-
确保为子目录和数据文件指定的名称不冲突。
-
仔细检查innodb_data_home_dir和innodb_data_file_path值的语法。特别是,innodb_data_file_path选项中的任何
MAX
值都是硬限制,超过该限制会导致致命错误。