mysql:Mysql Got error 28 from storage engine

  • 问题
  • 操作系统
  • 分析日志查找问题
  • 解决办法

问题

java.sql.SQLException: Error writing file ‘/tmp/MYkn6JQ8’ (Errcode: 28)

Mysql Got error 28 from storage engine错误
磁盘临时空间不够导致。

操作系统

centos 7

分析日志查找问题

由于mysql默认安装在系统盘,因此时间长了就会把系统盘占满

从而导致数据库查询报1030错误

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 19G 0 100% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/xvdb1 119G 11G 102G 10% /mnt

各列含义如下

文件系统 容量 已用 可用 已用% 挂载点
从命令结果可以看出/dev/xvda1已没有可用空间了

解决办法

  • 删除一些无用文件,数据库就可以继续使用了

  • 根本解决办法

    把数据库的配置文件指向数据盘

vim /etc/my.cnf

/var/log/
/var/run/mysqld/

修改log-error和pid-file地址如下

log-error=/mnt/mysql/log/mysqld.log
pid-file=/mnt/mysql/run/mysqld.pid

当然你也可以把数据文件也迁移走,方式和上面一样,
路径创建好后,把数据库文件拷贝过去即可

找出过大的文件,并删除这些超大日志文件

]find / -size +100M -exec ls -lh {} \;
-rw-r----- 1 root root 250M Feb 5 03:10 /var/log/httpd/error_log-20170205
-rw-r----- 1 root root 338M Feb 19 03:36 /var/log/httpd/access_log-20170219
-rw-r----- 1 root root 270M Jan 29 03:34 /var/log/httpd/access_log-20170129
-rw-r----- 1 root root 192M Feb 5 03:09 /var/log/httpd/access_log-20170205
-rw-r----- 1 root root 361M Feb 12 03:16 /var/log/httpd/access_log-20170212
-rw-r----- 1 root root 441M Feb 19 03:36 /var/log/httpd/error_log-20170219
-rw-r----- 1 root root 180M Feb 24 11:39 /var/log/httpd/access_log
-rw-r----- 1 root root 470M Feb 12 03:17 /var/log/httpd/error_log-20170212
-rw-r----- 1 root root 352M Jan 29 03:35 /var/log/httpd/error_log-20170129
-rw-r----- 1 root root 235M Feb 24 11:39 /var/log/httpd/error_log
-rw-r--r-- 1 root root 353M Dec 12 14:57 /usr/local/nginx/resources/test.mp4
-rwxr-x--x 1 root root 132M Dec 11 2015 /usr/java/jdk-7u79-linux-x64.rpm
find: `/proc/4217/task/4217/fd/5': No such file or directory
find: `/proc/4217/task/4217/fdinfo/5': No such file or directory
find: `/proc/4217/fd/5': No such file or directory
find: `/proc/4217/fdinfo/5': No such file or directory
-rw-r--r-- 1 root root 290M Jan 11 23:59 /opt/ld/logs/mgt/platform-sys.log_2017-01-11.log
-rw-r--r-- 1 root root 257M Jan 4 23:59 /opt/ld/logs/mgt/platform-sys.log_2017-01-04.log
-rw-r--r-- 1 root root 204M Feb 13 23:59 /opt/ld/logs/mgt/platform-sys.log_2017-02-13.log
-rw-r--r-- 1 root root 157M Jan 19 23:59 /opt/ld/logs/mgt/platform-sys.log_2017-01-19.log

删除不需要的日志
]# rm fr /opt/ld/logs/*

重启服务

service mysqld restart

你可能感兴趣的:(mysql)