Mysql

mysqld:無法創建/寫入文件’/home/mysqltmp/ibXXX’權限被拒絕

  • April 4, 2019

我的主卷是安裝在 / 上的 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/

引用自:https://dba.stackexchange.com/questions/233900