The MySQL error “28 from storage engine” basically means “not enough disk space”.
Short and sweet. Read on for a little more detail.
SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
Error 28 is an out of disk space error. This will mean that mysql does not have enough space to perform necessary functions (or save additional data). Annoyingly what little space you do have left can be eaten away by the increasing size of error log files or error reports (say in Magento) . Please note that in some situations it might be that the amount of space available to mysql has been limited and that the limit has been reached, even if the disk itself is not full.
To check diskspace on centos do this: dh -h
The -h makes the output more readable, showing 27G 21G 5.4G 80% instead of 28192636 21194188 5564360 80% for example. (Available, Used, Free, %Used)
First ports of call to free up some space would be to look for old backup files you can remove, old log files (including all the ones logging the out-of-disk-space errors). Usually mysql will start working with just a little space available. This can get your site up and running quickly and give you more time to find some other stuff to clear – or sort out expanding your disk if you are running on a virtual hosting environment.
You can check directory sizes using the du command. For example:
du -sh /var/www/log
the -s means “summarise” – give the total size including sub directories and the -h is human readable format. Without the -s you will get a list of all the sub-folders and their sizes which can also be useful but not initially handy for locating slightly plump directories.