1. 程式人生 > >mysql 資料庫在修改資料庫預設路徑的問題

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