MySQL报错解决:Error writing file ‘/tmp/XXXX‘ (Errcode: 28 - No space left on device)

吾爱主题 阅读:167 2023-10-12 15:52:00 评论:0

1. 问题描述

执行sql报错如下:

update `data` set update_time=now()
> 3 - Error writing file '/tmp/MLfd=76' (OS errno 28 - No space left on device)
> 时间: 77.55s

2. 错误原因

MySQL报错 “Error writing file ‘/tmp/XXXX‘ (Errcode: 28 - No space left on device)” 表明在写入文件时,临时目录(tmpdir)的设备上没有足够的可用空间,可能会导致MySQL无法执行某些操作,如排序或临时表的创建

3. 解决方案

在MySQL 8中,默认的临时目录(tmpdir)路径取决于操作系统的不同。下面是一些常见操作系统上的默认tmpdir路径:

  • Linux:默认情况下,MySQL 8在Linux上的tmpdir路径是 /tmp。
  • Windows:默认情况下,MySQL 8在Windows上的tmpdir路径是 C:\Windows\Temp。
  • macOS:默认情况下,MySQL 8在macOS上的tmpdir路径是 /tmp。

请注意,这些路径是MySQL 8的默认设置,但实际的tmpdir路径可能因你在MySQL配置中的特定设置而有所不同。你可以通过以下步骤来验证和更改tmpdir路径:

  1. 连接到MySQL数据库。

  2. 执行以下命令以查看当前的tmpdir路径设置:

    SHOW VARIABLES LIKE 'tmpdir';
    

  3. 查看特定tmpdir路径目录的剩余空间

  4. 如果确定可以清理空间,可以直接清理空间(删除时注意rm命令的使用,别tm删错了)

    如果你想更改tmpdir路径,可执行以下命令

    # 1、在挂载磁盘上创建一个文件夹
    mkdir /mnt/sdb/mysqltmp
    
    # 2、设置用于组和读写权限
    chown -R mysql:mysql /mnt/sdb/mysqltmp
    chmod -R 777 /mnt/sdb/mysqltmp
    
    # 3、打开mysql的配置文件
    vim /etc/my.cnf 
    
    # 4、在文件里面修改缓存路径
    [mysqld]
    tmpdir = /mnt/sdb/mysqltmp
    然后 :wq保存并退出
    
    # 5、重启mysql
    systemctl restart mysqld
    

重启后验证:

到此这篇关于MySQL报错解决:Error writing file ‘/tmp/XXXX‘ (Errcode: 28 - No space left on device)的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/qq_29864051/article/details/131524274

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容