Mysql
mysqld:無法創建/寫入文件’/home/mysqltmp/ibXXX’權限被拒絕
我的主卷是安裝在 / 上的 20GB SSD 磁碟。我在 /home 中安裝了一個 4TB 硬碟。所以為了節省空間我想將mysql臨時目錄設置為/home/mysqltmp。
但是,當我設置到此目錄時,mysql 將無法啟動。我得到錯誤:
mysqld: Can't create/write to file '/home/mysqltmp/ibm7cVN0' (Errcode: 13 "Permission denied")
我檢查了權限,它是正確的:
# ls -ld /home/mysqltmp/ drwxrwxrwx 2 mysql mysql 4096 Apr 4 03:19 /home/mysqltmp/
以 root 身份執行 mysqld 啟動沒有問題。
伺服器:
# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial
注意:更新到 16.04 後出現問題,正在使用 14.04
MySQL詳細資訊:
# mysql -V mysql Ver 15.1 Distrib 10.1.38-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
如果MariaDB沒有啟動怎麼辦
MariaDB 的 systemd 單元文件預設限制對 /home、/root 和 /run/user 的訪問。可以通過將 MariaDB systemd 服務的 ProtectHome 選項設置為 false 來消除此限制。例如,您可以通過執行以下命令重新配置 MariaDB systemd 服務以允許訪問 /home:
tee /etc/systemd/system/mariadb.service.d/dontprotecthome.conf <<EOF [Service] ProtectHome=false EOF systemctl daemon-reload
在此修復您的許可後:
chmod go-rw /home/mysqltmp/