今天要修改一下Ubuntu下mysql 5.7 的数据目录,发现无论怎么折腾文件
/etc/mysql/my.cnf
重启后都无效,在网上查看的相关的文档,说是要修改apparmor的文件,借此整理了一下文档,将步骤写到下面。
系统的的版本信息:
dc@dc-virtual-machine:~$ uname -a
Linux dc-virtual-machine 4.10.0-35-generic #39~16.04.1-Ubuntu SMP Wed Sep 21 09:02:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
1.创建新的数据库目录并修改所属主和所属组
sudo mkdir /var/mysql_data
chown -R mysql.mysql /var/mysql_data
chmod 700 /var/mysql_data
2.修改配置文件/etc/my.cnf ,如果找不到可以找 /etc/mysql/my.cnf ,如果再找不到,对不起找人接力吧;
将datadir 修改成1中定义的目录:
datadir = /var/mysql_data
3.这个步骤很重要,要修改apparmor的相关配置文件
sudo vim /etc/apparmor.d/usr.bin.mysqld
或者修改文件
sudo vim /etc/apparmor/usr.bin.mysqld
可能还在其他的路径下,注意仔细查找,这个文件我也是后来才知道的,在Centos中,不存在这种步骤的。
将上述文件中的:
# Allow data dir access
/var/lib/mysql r,
/var/lib/mysql/** rwk,
注意:上述的/var/lib/mysql/目录是mysql安装好后默认的。
修改成:
# Allow data dir access
/var/mysql_data/ r,
/var/mysql_data/** rwk,
4.修改完成后要重启apparmor服务
sudo /etc/init.d/apparmor restart
5.重启Mysql服务
sudo service mysql restart
6.验证mysql的目录是否已经更改
进入mysql 命令行,执行:
show variables like '%datadir%'
即可。
附:Ubuntu 16.04 Mysql5.7的完美卸载命令
话不多说,直接上命令:
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
数据目录修改出现问题,导致出现mysql不能正常的工作,重启不了。
涉及到apparmor 服务。