MySQL 8.3 Release Notes
InnoDB I/O 问题的排查步骤取决于问题发生的时刻:在 MySQL 服务器启动时或在正常操作期间,当 DML 或 DDL 语句由于文件系统级别的问题而失败时。
初始化问题
如果 InnoDB 尝试初始化其表空间或日志文件时出现问题,请删除 InnoDB 创建的所有文件:所有 ibdata
文件和所有重做日志文件 (#ib_redo
文件)。如果您创建了任何 InnoDB 表,也删除 MySQL 数据库目录中的任何 N
.ibd
文件。然后尝试重新初始化 InnoDB。为了最容易排查问题,请从命令提示符启动 MySQL 服务器,以便您可以看到发生的情况。
运行时问题
如果 InnoDB 在文件操作期间打印操作系统错误,通常问题的解决方案之一是:
-
确保 InnoDB 数据文件目录和 InnoDB 日志目录存在。
-
确保 mysqld 具有在这些目录中创建文件的访问权限。
-
确保 mysqld 可以读取正确的
my.cnf
或my.ini
选项文件,以便它使用您指定的选项启动。 -
确保磁盘不满且您不超过任何磁盘配额。
-
确保您指定的子目录和数据文件名称不冲突。
-
重新检查
innodb_data_home_dir
和innodb_data_file_path
值的语法。特别是,innodb_data_file_path
选项中的任何MAX
值是一个硬限制,超过该限制将导致致命错误。