我已将 MySQL 数据目录映射到另一个(更大)的 900GB 磁盘
[root@web ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 40G 24G 14G 64% /
tmpfs 7.4G 0 7.4G 0% /dev/shm
/dev/xvdb1 886G 658G 184G 79% /mnt/cbsvolume1
/tmp 位于较小的 40GB 磁盘中
[root@web ~]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 40G 24G 14G 64% /
看起来 MySQL 正在使用 /tmp 目录,因此当我尝试执行大型 MySQL 操作时有时会出现磁盘空间不足的情况。
我怎样才能更改/tmp
为使用更大的磁盘?
答案1
据我所知,内容/tmp
在重启时会被删除。
但是,根据您的情况,您可以尝试更改/添加TMPDIR
环境变量:
/etc/mysql/conf.d/local.cnf
答案2
将 TMPDIR 环境变量更改为具有更多磁盘空间的文件系统/目录。
编辑本地配置文件/etc/mysql/conf.d/local.cnf
。此文件包含您的本地更改 - 如果您升级 mysql,则不会被覆盖。请注意,配置文件可能存储在不同的位置 - 使用 find 找到默认配置文件 my.cnf。通常 local.cnf 会保存在同一目录中。
sudo find / -name my.cnf # look for path of config files
编辑 local.cnf 例如 sudo vi /etc/mysql/conf.d/local.cnf
将以下行添加到local.cnf:
[mysqld]
tmpdir = /your/newpath
然后重新启动mysql。
来自MySQL文档:
B.5.4.4 MySQL 存储临时文件的位置
在 Unix 上,MySQL 使用 TMPDIR 环境变量的值作为存储临时文件的目录的路径名。如果未设置 TMPDIR,MySQL 将使用系统默认值,通常是 /tmp、/var/tmp 或 /usr/tmp。