Can't create/write to file '/tmp/xxx' (Errcode: 13)
MySQL 無法在臨時目錄創建寫入臨時文件(排序、分組、臨時表等操作需要)。
df -h 確認 tmpdir 分區滿MySQL 按優先級使用:
--tmpdir=/pathTMPDIR / TEMP / TMP/tmp、/var/tmp、/usr/tmp查看當前值:SHOW VARIABLES LIKE 'tmpdir';
# 1. 創建目錄並授權
mkdir -p /data/mysql_tmp
chown mysql:mysql /data/mysql_tmp
chmod 750 /data/mysql_tmp
# 2. my.cnf 配置
[mysqld]
tmpdir = /data/mysql_tmp
# 3. 重啟生效
systemctl restart mysqld
優點:獨立目錄、可控權限、避開系統 /tmp 清理策略。
# /tmp 權限應為 1777 (sticky bit)
ls -ld /tmp
# drwxrwxrwt root root ... /tmp
# 修正
chmod 1777 /tmp
chown root:root /tmp
C:\Windows\Temp 或 /tmpservice mysql stop
myisamchk -r /datadir/db/*.MYI
service mysql start
mysqlcheck -r -u root -p dbname
# -r: repair, -a: analyze, -o: optimize
⚠️ 避免 -f 強制修復 (可能刪除損壞數據)。
tmpdir 磁盤使用率 (< 80%)find /data/mysql_tmp -mtime +1 -delete)tmpdir 完全控制權