ubuntu下更改mysql数据库datadir位置

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';
显示数据路径已经发生了改变
相关文章
相关标签/搜索