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

MySQL tmpdir 臨時目錄配置與權限問題排查:Slave 節點特殊限制詳解

     編輯:MySQL 綜合教學

MySQL tmpdir 臨時目錄配置與權限問題排查

故障案例

清理 /data 目錄時誤刪 /data/tmp,導致 MySQL 啟動失敗:

/usr/local/mysql/bin/mysqld: Can't create/write to file '/data/tmp/ibbLmEoD' (Errcode: 13 - Permission denied)

根因與解決

  1. 配置檔 my.cnf 指定 tmpdir=/data/tmp
  2. 目錄被刪除且未重建
  3. 解決:重建目錄並授權 mkdir -p /data/tmp && chown mysql:mysql /data/tmp && chmod 1777 /data/tmp

tmpdir 參數完整說明

屬性說明
命令列參數--tmpdir=path
配置檔參數tmpdir=path
多路徑支援Unix 用 : 分隔,Windows 用 ;,輪流使用分散磁碟 I/O
用途儲存臨時檔案、臨時表、排序緩衝區溢寫檔案

⚠️ Slave 節點關鍵限制

Slave 的 tmpdir 不可指向:
1. 記憶體檔案系統 (tmpfs/ramfs)
2. 重啟會被清理的目錄 (如系統預設 /tmp)

原因:Slave 需要臨時檔案進行 LOAD DATA INFILE 複製或臨時表複制,檔案遺失會導致複制中斷。

解決方案:slave_load_tmpdir

# 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

最佳實踐清單

  1. tmpdir 指向持久化磁碟目錄,非 /tmp 或記憶體盤
  2. 目錄權限 1777 (sticky bit),擁有者 mysql:mysql
  3. Slave 額外配置 slave_load_tmpdir 指向專用目錄
  4. 多磁碟環境配置多路徑分散 I/O:tmpdir=/data1/tmp:/data2/tmp
  5. 監控 tmpdir 磁碟空間,防止寫滿導致服務異常
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved