skip-external-locking(舊版 skip-locking)用於禁用 MyISAM 表的外部文件鎖,單機部署必開,多機共享數據目錄才需關閉。
| 部署架構 | 建議設置 | 理由 |
|---|---|---|
| 單機單實例(絕大多數) | skip-external-locking(默認開啟) | 無外部進程競爭,內部鎖足夠 |
| 多實例共享同一數據目錄(極罕見、不推薦) | 註釋掉該行(啟用 external-locking) | 需文件鎖防止跨實例數據損壞 |
| 集群/備份工具需直讀文件 | 操作前執行 FLUSH TABLES WITH READ LOCK 或停服務 | 避免備份時數據不一致 |
# my.cnf [mysqld] 區段 skip-external-locking # 推薦寫法(MySQL 4.0+) # 舊版寫法(會報警告) # skip-locking -- [Warning] '--skip-locking' is deprecated...
啟用 skip-external-locking 後,若需離線運行 myisamchk 檢查/修復/優化表:
mysqladmin flush-tables 關閉所有表並刷新緩存,確保無活躍連接操作該表。否則可能導致表損壞。
skip-locking 已棄用,統一改為 skip-external-locking。FLUSH TABLES 可安全進行離線維護。