mysql修改tmpdir

mysql修改tmpdir

   张吉吉     2020年10月24日 11:28     80

1.问题

Mysql在运行过程中出现了如下错误信息:

Error writing file '/tmp/MYtqBPDy' (OS errno 28 - No space left on device)

出现这个问题一般就是磁盘空间出现了不足,而导致临时文件没有办法写入而报的错误。

 

2.排查错误

查看临时文件所在目录

show global variables like 'tmpdir';1.png

可以看到当前是在/tmp下。

然后查看/tmp对应的空间

使用df –h查看,这里并没有对/tmp单独挂载,而是和/在一起,可以看到可用空间只有1.1G

2.png

所以可以将临时文件目录设置到其他目录中。

 

3.修改临时文件目录

1)修改配置文件

这里没有办法直接在数据库中更改,需要在配置文件中修改。

如果在数据库中直接修改会提示其是只读的参数。

3.png

在配置文件中添加此字段

tmpdir = /otherdata

 

2)修改权限

这个是必须要修改的,如果不修改权限就会导致数据库重启失败。

chmod 777 /otherdata

然后重启数据库

service mysql restart

 

4.官网介绍临时文件

用于创建临时文件的目录的路径。如果您的默认/tmp目录位于一个太小而不能容纳临时表的分区上,那么它可能很有用。此选项接受以循环方式使用的多个路径。在Unix上,路径应该用冒号(:)分隔,在Windows上用分号(;)分隔。如果MySQL服务器充当复制从服务器,则不应该将——tmpdir设置为指向基于内存的文件系统上的目录,或者指向服务器主机重启时被清除的目录。一个复制从属需要它的一些临时文件,以生存的机器重新启动,以便它可以复制临时表或加载数据INFILE操作。如果临时文件目录中的文件在服务器重启时丢失,复制将失败。


其他文章