把MySQL的临时目录迁移到内存上-临时文件夹

把MySQL的临时目录迁移到内存上-临时文件夹

如果你的查询一直在写磁盘,但是又常常因为无理的业务需求导致无法修改你的查询语句,于是就一直在崩溃的边缘,并且要哭的感觉的时候,可以试试为mysql tmpdir创建一个内存支持的文件系统,以获得更快的写入和读取速度, 能顶一会就是一会儿,作为技术的你没那么快被骂死。

这是一个临时方案,你还是要尽快找到写临时表的原因尽快解决它。

创建挂载点和给予mysql用户读写权限

#mkdir -p /tmp/mysqltmp && chown mysql:mysql /tmp/mysqltmp

把它加到/etc/fstab这样机器启动到时候可以自动挂载,gid,uid取决于你运行mysql的用户,在/etc/passwd里面可以查到。

#vim /etc/fstabtmpfs /tmp/mysqltmp tmpfs rw,gid=501,uid=501,size=256M,nr_inodes=10k,mode=0700 0 0

挂载

mount -a

修改/etc/my.cnf

tmpdir = /tmp/mysqltmp

重启你的数据库(自己决定是不是要在夜深人静的时候)

service mysql restart

确认你的临时目录已经生效

mysql> show variables like 'mpdir#x27;;

+-------------------+----------------+

| Variable_name | Value |

+-------------------+----------------+

| slave_load_tmpdir | /tmp |

| tmpdir | /tmp/mysqltmp |

+-------------------+----------------+

2 rows in set (0.00 sec)

推荐阅读