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

例項

如果你想把這個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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對我們的支援。