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

MySQL tmpdir 參數修改實戰:磁盤空間不足臨時遷移、唯讀變量限制與生產無重啟變更方案

     編輯:MySQL 綜合教學

MySQL tmpdir 參數修改實戰:磁盤空間不足臨時遷移、唯讀變量限制與生產無重啟變更方案

異常 SQL 導致臨時表佔滿 /tmp 觸發磁盤告警是常見故障。tmpdir 為唯讀變量,無法動態 SET GLOBAL,必須修改配置文件重啟生效。本文記錄排查流程、修改步驟,並探討生產環境無法重啟時的緩解方案。

故障現象

# 告警:/ 磁盤使用率 > 90%
df -h /tmp
# 發現大量 #sql_* 臨時文件佔用空間

mysql> SHOW VARIABLES LIKE 'tmpdir';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir        | /tmp  |
+---------------+-------+

mysql> SET GLOBAL tmpdir = '/data/mysql/tmp';
ERROR 1238 (HY000): Variable 'tmpdir' is a read only variable

標準修改流程(需重啟)

  1. 創建新目錄並授權:
    mkdir -p /data/mysql/tmp
    chown mysql:mysql /data/mysql/tmp
    chmod 1777 /data/mysql/tmp  # 防止被其他用戶誤刪
  2. 編輯 /etc/my.cnf:
    [mysqld]
    tmpdir = /data/mysql/tmp
  3. 重啟服務生效:
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved