ubuntu 16.04 修改mysql數據目錄

升級完ubuntu16.04後,mysql-server服務起不來了。刪除mysql,從新安裝(apt-get install),仍是沒法啓動,重啓電腦,仍是沒法啓動。html

嘗試使用"mysqld"手動啓動,提示innodb沒法讀寫到ibdata1文件。打開/etc/mysql/my.cnf,發現datadir參數設置到了一個自定義的目錄中(就是之前放mysql數據文件的目錄),數據文件都是存在的,包括那個ibdata1文件,那麼目錄或文件的訪問權限問題?mysql

ll命令查詢目錄和文件的訪問權限,沒有問題啊,用戶和組都是"mysql"。至此,沒法直接解決問題了,須要BING了(這類問題,放棄baidu,google沒法使用,推薦使用BING)linux

第一招:disable selinux(編輯/etc/selinux/config,設置「SELINUX=disabled」)——無效! 第二招:apparmor——成功! AppArmor是一個高效和易於使用的Linux系統安全應用程序。AppArmor對操做系統和應用程序所受到的威脅進行從內到外的保護,甚至是未被發現的0day漏洞和未知的應用程序漏洞所致使的攻擊。AppArmor安全策略能夠徹底定義個別應用程序能夠訪問的系統資源與各自的特權。AppArmor包含大量的默認策略,它將先進的靜態分析和基於學習的工具結合起來,AppArmor甚至能夠使很是複雜的應用能夠使用在很短的時間內應用成功。 apparmor控制了應用的目錄訪問權限,因此mysql是繞不開它的。 修改「/etc/apparmor.d/usr.sbin.mysqld」文件。 將其中默認的data目錄是: /var/lib/mysql/ r, /var/lib/mysql/** rwk, 把這兩行修改成移動過的的實際的數據文件目錄,例如: /home/nick/mysql/ r, /home/nick/mysql/** rwk, 保存,執行 service apparmor restart 重啓apparmor服務。sql

好了,訪問權限的問題基本解決了(若是仍是提示權限問題,那麼必定是目錄的實際訪問權限設置的有問題了,最偷懶的辦法就是哪一個不行,直接chmod 775) 若是還有其餘問題出現,就必定不是本文範圍內的了。 祝一切順利! 原文地址 http://www.linuxdiyf.com/linux/20167.htmlubuntu

相關文章
相關標籤/搜索