1.版本
1)操作系统
cat /etc/issue
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Kernel \r on an \m
cat /proc/version
Linux version 2.6.32-504.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Oct 15 04:27:16 UTC 2014
2)mysql数据库版本
mysql --version
mysql Ver 14.14 Distrib 5.6.26, for linux-glibc2.5 (x86_64) using EditLine wrapper
2.问题描述
2.1 发现问题
在使用desc 查看表结构的时候发现报如下错误:
mysql> desc TABLES;
ERROR 1030 (HY000): Got error 28 from storage engine
3. 问题分析
1)查看问题代码
perror 28
OS error code 28: No space left on device
这个问题是因为mysql所使用的临时表空间满了造成的。
2) 查看数据库当前使用的tmp表空间(默认值为/tmp)
mysql> show variables like 'tmpdir';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir | /tmp |
+---------------+-------+
1 row in set (0.00 sec)
2) 查看/tmp 目录使用情况
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
34G 34G 0 100% /
tmpfs 3.9G 240K 3.9G 1% /dev/shm
/dev/sda1 190M 33M 148M 19% /boot
/dev/mapper/data_vg-data_lv
197G 70G 118G 38% /data
##如上我们看到/tmp空间在根目录下,根目录目前已经满了
4. 解决方案
1) 删除/tmp目录下不必要文件,释放空间
2)修改mysql tmpdir参数指向有充裕可用空间的目录