/usr/libexec/mysqld:无法创建/写入文件/tmp /(错误代码:13)

时间:2020-01-09 10:42:45  来源:igfitidea点击:

我正在使用Red Hat Enterprise Linux服务器版本4.0+和MySQL版本4.20+。

Monit最近已通知我以下错误:mysqld无法启动。

来自/var/log/mysqld.log文件的详细日志:

/usr/libexec/mysqld: Can’t create/write to file ‘/tmp/ibCfJwf1’ (Errcode: 13)
070420 10:07:58 InnoDB: Error: unable to create temporary file; errno: 13
070420 10:07:58 [ERROR] Can’t init databases

070420 10:07:58 [ERROR] Aborting

070420 10:07:58 [Note] /usr/libexec/mysqld: Shutdown complete

/etc/init.d/mysql start command returned following output:
Initializing MySQL database: [ OK ] Timeout error occurred trying to start MySQL Daemon.
Starting MySQL: [FAILED]

如何在Linux或者类似Unix的系统上解决此问题?
此错误表示,MySQL服务器无法访问您的/tmp目录,无法写入和创建临时文件。
确保/tmp目录归root用户所有,并且在/tmp目录上设置了sticky位。
执行以下命令来修复此错误。
您必须以root用户身份登录并执行:

# chown root:root /tmp
# chmod 1777 /tmp
## test it ##
# /etc/init.d/mysqld start

现在,您的mysql服务器应该可以正常启动了。

关于SELinux和AppArmor安全策略的说明

如果将SELinux或者AppArmor与数据库的自定义数据目录一起使用,则需要修改策略以允许MySQL读取和写入数据目录。