无法创build/写入文件'/ mnt / temp / something'(Errcode:13)

我改变了MySQLconfiguration的tmp目录到已挂载的磁盘,并在service mysql restart我得到以下错误:

 Can't create/write to file '/mnt/temp/something' (Errcode: 13) 

据我了解, Error Code 13是指文件权限错误。

但奇怪的部分是:

  1. 临时目录所有者已经是mysql ,文件权限是1777

    drwxrwxrwt 2 mysql mysql 4.0K Nov 14 08:34 temp/

  2. 我可以在非root用户的位置创build文件。

  3. mnt上有600GB的空间,所以不应该是一个问题。

  4. 我可以很容易地在根磁盘上创buildtmp目录

/etc/mysql/my.cnf

 user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /mnt/mysql tmpdir = /mnt/temp #tmpdir = /var/tmp 

正在安装的磁盘上创build一个tmp目录不允许? 否则我做错了什么? 请帮助。

所以这有点旧了,但我刚刚解决了一个类似的问题,我自己(使用/ mnt / tmp作为系统临时目录),并且必须弄清楚为什么MySQL不会启动。

您可能会遇到阻止MySQL使用/ mnt驱动器上的目录的AppArmor设置。 您需要将新的tmppath添加到允许的path的MySQL应用程序装甲列表中。

如果你看看你的系统日志,你可能会看到消息看起来像这样每次你尝试启动MySQL服务器:

  type = 1400 audit(1425343954.203:23):apparmor =“DENIED”operation =“mknod”parent = 1 profile =“/ usr / sbin / mysqld”name =“/ mnt / tmp / ibMXP5lg”pid = 16418 comm =“mysqld “requested_mask =”c“denied_mask =”c“fsuid = 106 ouid = 106 

在这种情况下,您需要编辑文件:

  /etc/apparmor.d/usr.sbin.mysqld 

并添加行:

  / mnt / tmp / r,
 / mnt / tmp / ** rwk, 

到文件。 然后重新启动AppArmor:

  $ sudo服务apparmor重新启动