MySQL 暂时文件夹

MySQL数据文件夹/data/mysql所在的上层文件夹/data磁盘空间不足导致MySQL启动失败,所以清理了/data文件夹下除了mysql子文件夹外的其它无用文件夹。重新启动发现还是失败。检查错误日志。看到例如以下错误:
/usr/local/mysql/bin/mysqld: Can‘t create/write to file ‘/data/tmp/ibbLmEoD‘ (Errcode: 13 - Permission denied)

原来是清理无用文件夹时不小心把MySQL配置文件里指定的tmpdir——/data/tmp文件夹也给删除了,导致MySQL Server启动时的一些暂时文件或表无法写入,从而启动失败。重建文件夹并赋予正确的权限后,重新启动MySQL Server,正常启动。


顺便说一说MySQL 暂时文件夹这个參数:

命令行參数格式:--tmpdir=path
配置文件參格式:tmpdir=path

暂时文件夹用于存储暂时文件或暂时表。值能够是一个使用“:”(Unix)或“;”(Windows)分隔的路径列表,这些路径可被轮流使用,以便将负载分到不同磁盘。若MySQL server是作为Slave的角色,则不能将该文件夹指向基于内存文件系统的文件夹或者当主机重新启动时会被清理掉的文件夹,由于Slave须要这些文件复制暂时表或运行LOAD DATA INFILE操作,这些文件丢失会导致复制失败。这意味着不能讲slave的tmpdir设置为linux系统默认的/tmp文件夹。对于Slave能够使用还有一配置项slave_load_tmpdir来设置其暂时文件夹,这样Slave能够不使用通用选项tmpdir设置的暂时文件夹。对于非Slave角色的MySQL server没此限制。

若暂时文件夹不存在或权限不对不仅会引起MySQL Server启动失败还会导致其它可能使用到暂时文件夹的MySQL有用程序执行异常。非常多MySQL相关程序会从MySQL Server的配置文件读取选项值,比方全备程序xtrabackup,以下这个错误就是由于MySQL Server配置文件里指定的暂时文件夹不存在造成的。

xtrabackup_56: Can‘t create/write to file ‘/data/tmp/ibHbumcM‘ (Errcode: 2 - No such file or directory)
2014-07-23 16:04:42 7f1b25c607e0  InnoDB: Error: unable to create temporary file; errno: 2
xtrabackup: innodb_init(): Error occured.
innobackupex: Error: 
innobackupex: ibbackup failed at /usr/bin/innobackupex line 389.

MySQL 暂时文件夹

上一篇:Oracle开发环境搭建


下一篇:Mybatis中#{}与${}的区别: