mysql修改資料庫預設路徑無法啟動問題的解決
前言
mysql 修改資料庫預設路徑時出現服務無法啟動,檢查日誌發現報檔案許可權的錯誤。
對於更改後的目錄已經設定mysql為目錄的owner啦呀!且命令列下直接啟動資料庫就一切正常。
祭出萬能的Google ,最後在一篇老外的帖子中找到了原因——SELINUX 策略問題!
凡是後臺服務都需要有對相應目錄的對應許可權,而 mysql 的預設路徑/var/lib/mysql 已經添加了相應的策略,修改路徑後由於沒有相應的策略,導致後臺程序讀取檔案被selinux阻止,從而出現許可權錯誤!
方法如下:
mysql,方法為:
chcon -R -t mysqld_db_t /db/mysql
如果是APACHE,方法為:
# chcon -R -h -t httpd_sys_content_t /www/web/
附chcon 命令幫助
chcon 命令:修改物件(檔案)的安全上下文(如:使用者:角色:型別:安全級別)。
命令格式:
Chcon [OPTIONS…] CONTEXT FILES…..
Chcon [OPTIONS…] –reference=PEF_FILES FILES
說明:
CONTEXT 為要設定的安全上下文
FILES 物件(檔案)
--reference 參照物件
PEF_FILES 參照檔案上下文
FILES 應用參照檔案上下文為我的上下文。
OPTIONS 如下:
-f 強迫執行
-R 遞迴地修改物件的安全上下文
-r ROLE 修改安全上下文角色的配置
-t TYPE 修改安全上下文型別的配置
-u USER 修改安全上下文使用者的配置
-v 顯示冗長的資訊
-l,--range=RANGE 修改安全上下文中的安全級別
mysql,方法為:
chcon -R -t mysqld_db_t /db/mysql
例項
如果你想把這個ftp共享給匿名使用者的話,需要開啟以下:
chcon -R -t public_content_t /var/ftp
如果你想讓你設定的FTP目錄可以上傳檔案的話,SELINUX需要設定:
chcon -t public_content_rw_t /var/ftp/incoming
允許使用者HHTP訪問其家目錄,該設定限僅於使用者的家目錄主頁:
setsebool -P httpd_enable_homedirs 1 chcon -R -t httpd_sys_content_t ~user/public_html
如果你希望將samba目錄共享給其他使用者,你需要設定:
chcon -t samba_share_t /directory
共享rsync目錄時:
chcon -t public_content_t /directories
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對我們的支援。