ubuntu下修改mysql數據庫的datadir路徑:
環境:ubuntu 18.04 (可經過命令查看:cat /proc/version)
mysql版本:5.7 (可經過命令:mysql -V)
修改配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf
指定datadir爲新的路徑:
datadir = /work/mysql_db/mysql
注:這樣直接修改後會報錯
出現這個問題的緣由是在ubuntu中存在一個apparmor的服務
AppArmor是一個高效和易於使用的Linux系統安全應用程序。
AppArmor對操做系統和應用程序所受到的威脅進行從內到外的保護,
甚至是未被發現的0day漏洞和未知的應用程序漏洞所致使的***。
AppArmor安全策略能夠徹底定義個別應用程序能夠訪問的系統資源與各自的特權。
AppArmor包含大量的默認策略,它將先進的靜態分析和基於學習的工具結合起來,
AppArmor甚至能夠使很是複雜的應用能夠使用在很短的時間內應用成功。(引用百度百科)
AppArmor針對mysql的配置文件路徑
/etc/apparmor.d/usr.sbin.mysqld
修改其中的內容:
(切記其它的目錄如插件目錄請不要修改,不然會提示登陸的問題)
#Allow data dir access
註銷掉下面的兩行,或者直接換成下面新路徑便可
#/var/lib/mysql/ r,
#/var/lib/mysql/** rwk,
/work/mysql_db/mysql/ r,
/work/mysql_db/mysql/** rwk,
須要重啓AppArmor服務後生效:
systemctl restart apparmor
或者:
/etc/init.d/apparmor restart
重啓mysql服務便可正常啓動
systemctl restart mysql
登陸mysql,查看datadir路徑:
> show variables like 'datadir';
顯示數據路徑已經發生了改變