首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

MySQL 安裝後建表即停服:InnoDB 錯誤 106 解決方案(改用 MyISAM)

     編輯:DB2 教學

故障現象:安裝 MySQL 後,執行建表語句服務立即停止

錯誤日志(.err 文件)關鍵信息:

2015-05-26 10:50:51 1160 InnoDB: Operating system error number 6 in a file operation.
InnoDB: Some operating system error numbers are described at
InnoDB: https://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
2015-05-26 10:50:51 5344 [ERROR] InnoDB: File .\ibdata1: 'aio read' returned OS error 106. Cannot continue operation

根因分析:InnoDB 異步 I/O (AIO) 與系統環境不兼容

  • 錯誤碼 106 (ERROR_READ_FAULT) 表示讀取文件時發生硬件/驅動/文件系統層面的故障
  • InnoDB 默認使用 Windows 原生 AIO (innodb_use_native_aio=ON),某些環境(虛擬機、舊硬件、特定文件系統、殺毒軟件攔截)不支持
  • ibdata1 系統表空間文件讀取失敗導致實例崩潰

快速繞過方案:修改默認存儲引擎為 MyISAM

編輯 my.ini(或 my.cnf),在 [mysqld] 區段添加/修改:

default-storage-engine=MYISAM

重啟 MySQL 服務,建表不再崩潰。

徹底解決 InnoDB AIO 問題的進階方案

  1. 禁用 Native AIO(保留 InnoDB 事務優勢):
    innodb_use_native_aio=OFF
    
  2. 調整 innodb_flush_method(Windows 下可嘗試):
    innodb_flush_method=normal
    
  3. 檢查殺毒軟件/備份軟件:排除 MySQL 數據目錄(datadir)的實時掃描
  4. 磁盤健康檢查:chkdsk /f /r、SMART 信息、RAID 卡狀態
  5. 升級 MySQL 版本:5.6/5.7/8.0 對 AIO 容錯性更好

MyISAM 與 InnoDB 選型提醒

特性MyISAMInnoDB
事務支持❌✅ ACID
行級鎖❌ 表鎖✅
外鍵❌✅
崩潰恢復❌ 易損壞✅ Redo/Undo Log
全文索引✅ (5.6+ InnoDB 也支持)✅
適用場景只讀/日志/緩存表、非關鍵數據核心業務、資金、訂單、高併發

建議: 僅作臨時繞過測試用 default-storage-engine=MYISAM,**生產核心業務必須修復 InnoDB AIO 問題並使用 InnoDB**。

總結

MySQL 安裝後建表即崩潰,日志顯示 ibdata1 AIO 讀取錯誤 106。臨時方案改默認引擎為 MyISAM;根治方案禁用 innodb_use_native_aio、排查殺毒/備份軟件衝突、檢查磁盤健康。切記:MyISAM 缺乏事務與崩潰恢復,**不適合核心業務數據**。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved