/usr/libexec/mysqld:无法创建/写入文件/tmp /(错误代码:13)
我正在使用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] Aborting070420 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读取和写入数据目录。