Amazon-Ec2
無法創建/寫入文件“/mnt/temp/something”(錯誤程式碼:13)
我將 mysql 配置的 tmp 目錄更改為已安裝的磁碟,然後
service mysql restart
出現以下錯誤:Can't create/write to file '/mnt/temp/something' (Errcode: 13)
據我了解,
Error Code 13
是指文件權限錯誤。但奇怪的是:
- 臨時目錄所有者已經是
mysql
並且文件權限是1777
drwxrwxrwt 2 mysql mysql 4.0K Nov 14 08:34 temp/
2. 我可以使用非 root 使用者在該位置創建文件。 3. mnt 上有 600 Gb 的空間,所以這應該不是問題。 4. 我可以tmp
在根磁碟上輕鬆創建目錄
/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
不允許在已掛載的磁碟上創建 tmp 目錄嗎?否則我做錯了什麼?請幫忙。
所以這有點老了,但我自己解決了一個類似的問題(使用 /mnt/tmp 作為系統臨時目錄)並且必須弄清楚為什麼 MySQL 不會啟動。
您可能遇到了阻止 MySQL 使用 /mnt 驅動器上的目錄的 AppArmor 設置。您需要將新的 tmp 路徑添加到 MySQL 應用程序裝甲允許路徑列表中。
如果你查看你的系統日誌,你可能會在每次嘗試啟動 mysql 伺服器時看到類似這樣的消息:
type=1400 審計(1425343954.203:23): apparmor="DENIED" operation="mknod" parent=1 profile="/usr/sbin/mysqld" name="/mnt/tmp/ibMXP5lg" pid=16418 comm="mysqld " 請求遮罩="c" 拒絕遮罩="c" fsuid=106 ouid=106
在這種情況下,您需要編輯文件:
/etc/apparmor.d/usr.sbin.mysqld
並添加以下行:
/mnt/tmp/r, /mnt/tmp/** rwk,
到文件。然後只需重新啟動 AppArmor:
$ sudo service apparmor 重啟