我们的Mysql查询使用临时表,在进程中创建临时文件.目前文件被写入/ tmp.mysql写入的临时文件夹的路径到底怎么改变?
Cyb*_*m0n 47
你应该编辑你的my.cnf
tmpdir = /whatewer/you/want
Run Code Online (Sandbox Code Playgroud)
然后重新启动mysql
PS不要忘记给/whatewer/you/wantmysql用户写权限
Eli*_*ynn 36
这是一个将mysqld tmpdir从/ tmp移动到/ run/mysqld的示例,它已经存在于Ubuntu 13.04上并且是tmpfs(memory/ram):
sudo vim /etc/mysql/conf.d/local.cnf
Run Code Online (Sandbox Code Playgroud)
加:
[mysqld]
tmpdir = /run/mysqld
Run Code Online (Sandbox Code Playgroud)
然后:
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
持续:
SHOW VARIABLES LIKE 'tmpdir';
Run Code Online (Sandbox Code Playgroud)
================================================== ================
如果MySQL重启时出错,您可能启用了AppArmor:
sudo vim /etc/apparmor.d/local/usr.sbin.mysqld
Run Code Online (Sandbox Code Playgroud)
加:
# 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,
Run Code Online (Sandbox Code Playgroud)
然后:
sudo service apparmor reload
Run Code Online (Sandbox Code Playgroud)
来源: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
这在文档中得到了解答:
在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.
| 归档时间: |
|
| 查看次数: |
89436 次 |
| 最近记录: |