樹莓派系統安裝mariadb通過sudo apt install 安裝後,服務正常啟動,但默認的數據目錄是 /var/lib/mysql,所以修改數據目錄和日誌目錄,方便維護。
新的數據目錄:/home/mysql/data,新日誌目錄 /home/mysql/log
啟動服務時出現警告提示:
[Warning] Can't create test file /home/mysql/data/club-wilspark-rb.lower-test
一番搜索,在Mariadb官方網站發現了解決方案:
解釋一下:
1. 要保證數據目錄屬於服務的所有者,一般是mysql用戶
2. 保證數據目錄有「x」執行權限
3. 保證數據目錄的所有父級目錄對用戶、用戶組、以及其他均有「x」執行權限
4. 再就是檢查systemd、selinux還有apparmor了
前三條確定沒有問題後,根據第4條繼續追查發現問題所在:
默認的systemd管理單元 mariadb.service 中會有ProtectHome=true的配置,即數據目錄在/home下,通過systemctl或者Service啟動數據服務是無法啟動的,因為home目錄受保護了,所有編輯mariadb.service 中的ProtectHome修改為false後可以正常啟動。
【補充】需要重載配置單元,執行命令 systemctl daemon-reload
我的mariadb.service配置文件實際位置在(樹莓派系統上安裝的mariadb)
/lib/systemd/system/mariadb.service