查看mysql的log-error日志发现如下错误:
ERROR 3 (HY000): Error writing file '/tmp/MYbEd05t' (Errcode: 28)
这是由于mysql运行sql时会产生临时文件,这个临时文件大小取决于sql语句和表的大小,当存放临时文件的分区“/”大小不足的时候会出现上述错误。这时候需要更改临时文件目录的位置到空间足够的分区下,步骤如下:
1.首先找到临时文件目录位置,在mysql命令行模式下输入:
show global variables like '%tmpdir%';
2.确认该位置下的分区空间是否可以释放出足够的空间,或者更改其临时文件目录:
set global tmpdir = '/data/mysqltemp';
3.接下来还需要修改mysql的配置文件my.cnf,在其中修改或者[mysqld]区块下新增如下配置:
tmpdir=/data/mysqltemp
4.再次执行步骤1,确认是否修改成功
5.最后给新增的临时文件目录授予可写权限,确保能够正确写入:
chmod a+w /data/mysqltemp
最后若是仍未生效,可以在不影响业务运行条件下尝试重启该mysql服务,对新部署mysql的服务器也应该尽早把临时文件目录更改至空间富余的分区下,避免日后不必要的麻烦。