升级MySQL 8.4后启动报错io_setup()失败EAGAIN,原因是什么?
摘要:问题 最近碰到一个 case,一台主机上,部署了多个实例。之前使用的是 MySQL 8.0,启动时没有任何问题。但升级到 MySQL 8.4 后,部分实例在启动时出现了以下错误。 [Warning] [MY-012
问题
最近碰到一个 case,一台主机上,部署了多个实例。之前使用的是 MySQL 8.0,启动时没有任何问题。但升级到 MySQL 8.4 后,部分实例在启动时出现了以下错误。
[Warning][MY-012582][InnoDB]io_setup()failedwithEAGAIN.Willmake5attemptsbeforegivingup.
[Warning][MY-012583][InnoDB]io_setup()attempt1.
[Warning][MY-012583][InnoDB]io_setup()attempt2.
[Warning][MY-012583][InnoDB]io_setup()attempt3.
[Warning][MY-012583][InnoDB]io_setup()attempt4.
[Warning][MY-012583][InnoDB]io_setup()attempt5.
[ERROR][MY-012584][InnoDB]io_setup()failedwithEAGAINafter5attempts.
[ERROR][MY-012954][InnoDB]CannotinitializeAIOsub-system
[ERROR][MY-012930][InnoDB]PlugininitializationabortedwitherrorGenericerror.
[ERROR][MY-010334][Server]FailedtoinitializeDDStorageEngine
[ERROR][MY-010020][Server]DataDictionaryinitializationfailed.
[ERROR][MY-010119][Server]Aborting
[System][MY-010910][Server]/usr/local/mysql/bin/mysqld:Shutdowncomplete(mysqld8.4.0)MySQLCommunityServer-GPL.
[System][MY-015016][Server]MySQLServer-end.
下面我们来分析下这个报错的具体原因及解决方法。
定位过程
首先搜索下这个报错是在哪个文件产生的。
#grep"io_setup()failed"-r/usr/src/mysql-8.4.0
/usr/src/mysql-8.4.0/storage/innobase/os/os0file.cc:ib::warn(ER_IB_MSG_757)<<"io_setup()failedwithEAGAIN."
/usr/src/mysql-8.4.0/storage/innobase/os/os0file.cc:<<"io_setup()failedwithEAGAINafter"
接着分析该文件中产生报错的具体函数。
