MySQL/Writing file error (Errcode 28)

后端 未结 10 1848
慢半拍i
慢半拍i 2020-11-29 04:36

I have the following error with one of our web applications -

Query3 failed: Error writing file \'/tmp/MY1fnqpm\' (Errcode: 28) ... INSERT MailList... (remo         


        
相关标签:
10条回答
  • 2020-11-29 04:40

    Use the perror command:

    $ perror 28
    OS error code  28:  No space left on device
    

    Unless error codes are different on your system, your file system is full.

    0 讨论(0)
  • 2020-11-29 04:47

    I had same problem but disk space was okay (only 40% full). Problem were inodes, I had too many small files and my inodes were full.

    You can check inode status with df -i

    0 讨论(0)
  • 2020-11-29 04:51

    The error means that you dont have enough space to create temp files needed by MySQL.

    The first thing you can try is to expand the size of your /tmp/ partition. If you are under LVM, check the lvextend command.

    If you are not able to increase the size of your partition /tmp/ you can work in the MySQL configuration, edit the my.cnf (typically on /etc/mysql/my.cnf) file and look for this line:

    tmpdir = /tmp/

    Change it for whatever you want (example /var/tmp/). Just be sure to have space and assign write permission for the mysql user in the new directory.

    Hope this helps!

    0 讨论(0)
  • 2020-11-29 04:52

    I had this same error and the problem was simply not enough space on my virtual machine. I deleted some unnecessary files and it started working again.

    my memory/disk space allocation looked something like this

    df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   37G   37G  127M 100% /
    ...
    
    0 讨论(0)
  • 2020-11-29 04:56

    For xampp users: on my experience, the problem was caused by a file, named '0' and located in the 'mysql' folder. The size was tooooo huge (mine exploded to about 256 Gb). Its removal fixed the problem.

    0 讨论(0)
  • 2020-11-29 04:56

    Today. I have same problem... my solution:

    1) check inode: df -i I saw:

    root@vm22433:/etc/mysql# df -i
    Filesystem Inodes IUsed IFree IUse% Mounted on
    udev 124696 304 124392 1% /dev
    tmpfs 127514 452 127062 1% /run
    /dev/vda1 1969920 1969920 0 100% /
    tmpfs 127514 1 127513 1% /dev/shm
    tmpfs 127514 3 127511 1% /run/lock
    tmpfs 127514 15 127499 1% /sys/fs/cgroup
    tmpfs 127514 12 127502 1% /run/user/1002
    

    2) I began to look what folders use the maximum number of inods:

     for i in /*; do echo $i; find $i |wc -l; done
    

    soon I found in /home/tomnolane/tmp folder, which contained a huge number of files.

    3) I removed /home/tomnolane/tmp folder PROFIT.

    4) checked:

    Filesystem      Inodes  IUsed   IFree IUse% Mounted on
    udev            124696    304  124392    1% /dev
    tmpfs           127514    454  127060    1% /run
    /dev/vda1      1969920 450857 1519063   23% /
    tmpfs           127514      1  127513    1% /dev/shm
    tmpfs           127514      3  127511    1% /run/lock
    tmpfs           127514     15  127499    1% /sys/fs/cgroup
    tmpfs           127514     12  127502    1% /run/user/1002
    

    it's ok.

    5) restart mysql service - it's ok!!!!

    0 讨论(0)
提交回复
热议问题