今天要修改一下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 13 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%'

 即可。