清理 /data 目錄時誤刪 /data/tmp,導致 MySQL 啟動失敗:
/usr/local/mysql/bin/mysqld: Can't create/write to file '/data/tmp/ibbLmEoD' (Errcode: 13 - Permission denied)
my.cnf 指定 tmpdir=/data/tmpmkdir -p /data/tmp && chown mysql:mysql /data/tmp && chmod 1777 /data/tmp| 屬性 | 說明 |
|---|---|
| 命令列參數 | --tmpdir=path |
| 配置檔參數 | tmpdir=path |
| 多路徑支援 | Unix 用 : 分隔,Windows 用 ;,輪流使用分散磁碟 I/O |
| 用途 | 儲存臨時檔案、臨時表、排序緩衝區溢寫檔案 |
Slave 的 tmpdir 不可指向:
1. 記憶體檔案系統 (tmpfs/ramfs)
2. 重啟會被清理的目錄 (如系統預設/tmp)
原因:Slave 需要臨時檔案進行 LOAD DATA INFILE 複製或臨時表複制,檔案遺失會導致複制中斷。
# my.cnf [mysqld] tmpdir = /data/tmp # 通用臨時目錄 slave_load_tmpdir = /data/mysql_tmp_load # Slave 專用,避開限制
備份工具 xtrabackup/innobackupex 會讀取 MySQL 配置檔的 tmpdir,目錄不存在會報錯:
xtrabackup_56: Can't create/write to file '/data/tmp/ibHbumcM' (Errcode: 2 - No such file or directory) innobackupex: ibbackup failed
/tmp 或記憶體盤1777 (sticky bit),擁有者 mysql:mysqlslave_load_tmpdir 指向專用目錄tmpdir=/data1/tmp:/data2/tmp