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

MySQL 啟動報錯:Plugin FEDERATED is disabled 解決實錄

     編輯:MySQL 綜合教學

MySQL 服務啟動失敗,錯誤日誌顯示 Plugin 'FEDERATED' is disabled 並伴隨 InnoDB: unable to create temporary file、Unknown/unsupported table type: INNODB。本文記錄排查過程與根因修復。

錯誤日誌

121012 11:35:03 [Note] Plugin 'FEDERATED' is disabled.
121012 11:35:03 InnoDB: Error: unable to create temporary file; errno: 2
121012 11:35:03 [ERROR] Plugin 'InnoDB' init function returned error.
121012 11:35:03 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
121012 11:35:03 [ERROR] Unknown/unsupported table type: INNODB
121012 11:35:03 [ERROR] Aborting

誤區:關注 FEDERATED

Plugin 'FEDERATED' is disabled 僅是告警(Note 級別),非致命錯誤。真正導致啟動失敗的是:

  • InnoDB: unable to create temporary file; errno: 2 → 臨時目錄不可寫或不存在
  • InnoDB 初始化失敗 → 註冊存儲引擎失敗 → 表類型 INNODB 不可用

排查步驟

1. 檢查臨時目錄權限

# 查看當前 tmpdir 設置
SHOW VARIABLES LIKE 'tmpdir';
-- 可能為空或指向不可寫路徑

2. 清理損壞的 InnoDB 日誌文件

# 進入數據目錄
cd /var/lib/mysql  # 或 my.cnf 中 datadir 路徑

# 備份後刪除(MySQL 重啟會自動重建)
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak

3. 顯式配置 tmpdir

編輯 my.cnf (Linux) 或 my.ini (Windows):

[mysqld]
# 必須指定存在且 MySQL 進程可寫的目錄
tmpdir = "/tmp"              # Linux 常用
# tmpdir = "E:/MySQL/Temp/"  # Windows 示例

# 建議同時設置
innodb_temp_data_file_path = ibtmp1:12M:autoextend

修復驗證

  1. 確保 tmpdir 目錄存在:mkdir -p /tmp && chown mysql:mysql /tmp
  2. 刪除舊 ib_logfile*
  3. 重啟服務:service mysqld restart 或 systemctl restart mysqld
  4. 檢查錯誤日誌:不再出現 unable to create temporary file
  5. 測試建表:CREATE TABLE t (id INT) ENGINE=INNODB; 成功

常見誤導方案辨析

網傳方案評價正確做法
刪除 data 目錄下所有非庫文件夾文件過度暴力,可能丟失數據僅刪除 ib_logfile* 並配置 tmpdir
關閉 FEDERATED 插件治標不治本,FEDERATED 非致命忽略該 Note,聚焦 InnoDB 初始化
重裝 MySQL殺雞用牛刀,配置問題非代碼問題修正配置,保留數據目錄

預防清單

  • my.cnf 必須顯式配置 tmpdir 指向大空間、可寫目錄
  • 定期監控磁盤空間,避免 tmpdir 所在分區滿載
  • 遷移/備份恢復後,檢查 ib_logfile* 是否完整
  • 生產環境啟用 innodb_dedicated_server=ON (MySQL 8.0+) 自動調優

總結

MySQL 啟動報 Plugin FEDERATED is disabled 實為 InnoDB 臨時文件創建失敗 的連帶現象。核心修復:配置有效 tmpdir + 清理舊 redo log。切勿被表象錯誤誤導,直擊存儲引擎初始化鏈路。

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