-->

改变MySQL的的tmp文件夹(Changing the tmp folder of mysql)

2019-07-31 01:36发布

我们的MySQL查询使用过程中所产生的临时文件临时表。 目前,该文件被写入到/ tmp。 究竟如何才能临时文件夹的路径到mysql的写入改变?

Answer 1:

你应该编辑的my.cnf

tmpdir = /whatewer/you/want

而重启MySQL后

PS不要忘了写权限授予/whatewer/you/want为MySQL用户



Answer 2:

下面是mysqld的TMPDIR从移动的/ tmp到已经存在在Ubuntu 13.04和是tmpfs的(存储器/ RAM)/运行/ mysqld的一个例子:

sudo vim /etc/mysql/conf.d/local.cnf

加:

[mysqld]
tmpdir = /run/mysqld

然后:

sudo service mysql restart

持续:

SHOW VARIABLES LIKE 'tmpdir';

================================================== ================

如果你在MySQL重启的错误,你可能启用了AppArmor的:

sudo vim /etc/apparmor.d/local/usr.sbin.mysqld

加:

# Site-specific additions and overrides for usr.sbin.mysqld.
# For more details, please see /etc/apparmor.d/local/README.
/run/mysqld/ r,
/run/mysqld/** rwk,

然后:

sudo service apparmor reload 

来源: http://2bits.com/articles/reduce-your-servers-resource-usage-moving-mysql-temporary-directory-ram-disk.html , https://blogs.oracle.com/jsmyth/entry/ apparmor_and_mysql



Answer 3:

这是回答的文档中:

MySQL在哪儿存储临时文件

在Unix,MySQL使用TMPDIR环境变量,在其中存储临时文件的目录的路径名的值。 如果未设置TMPDIR,MySQL使用系统默认的,通常是的/ tmp,/ var / tmp中,或/ usr / tmp目录。

在Windows,Netware和OS2,MySQL的顺序查找TMPDIR,TEMP和TMP环境变量的值。 对于找到的第一个设置,MySQL使用它,不检查那些剩余。 如果没有TMPDIR,TEMP,或TMP的设置,MySQL使用Windows系统默认情况下,通常是C:\ WINDOWS \ TEMP。



Answer 4:

如果你没有的AppArmor或SELinux的问题,但仍然得到错误代码13的:

MySQL必须能够访问的完整路径。 即所有的文件夹必须是mysql的访问,不只是你在指着打算的人。

例如,尝试在你的MySQL配置中使用这样的: tmp = /some/folder/on/disk

# will work, as user root:
mkdir -p /some/folder/on/disk
chown -R mysql:mysql /some

# will not work, also as user root:
mkdir -p /some/folder/on/disk
chown -R mysql:mysql /some/folder/on/disk


文章来源: Changing the tmp folder of mysql
标签: mysql tmp