Mysql 数据文件&&日志文件 目录地址迁移指南

       我们在日常部署mysql服务时,经常会考虑到磁盘空间问题,而需要做默认存储目录以及日志目录的迁移,虽然网上零零散散也有很多教程,但经过本人试验,很多文章都比较表层,照着做会出现这样那样的问题,所以今天特别开个专题,把数据文件和日志文件迁移的过程合在一起详细地阐述一遍。

       

       环境参数:CentOS 6.5 、Mysql 5.5.43

       迁移后路径:数据库文件保存在 /data/mysql 下,日志文件保存在 /data/log/mysql 下

 

      步骤:

      一、停止Mysql服务: service mysql stop

      二、创建 /data/mysql 和 /data/log/mysql 文件夹

      三、修改数据库文件夹的宿主为mysql:chown -R mysql:mysql /data/mysql

      四、修改日志文件夹操作权限:chmod 777 /data/log

      五、修改日志文件夹的宿主为mysql:chown -R mysql:mysql /data/log/mysql

      得到如下目录结构:
     
     
      六、拷贝mysql存储文件夹下所有内容到新目录:cp -rf /var/lib/mysql/* /data/mysql/

      七、修改新目录下文件的权限和宿主:chmod 660 *;chown -R mysql:mysql * 

      --这一步非常关键,就是把copy过去的文件权限进行重新编辑,如果不执行这步操作,很多同学会发现后面的mysql服务是无法启动的,会提示无法打开数据文件,原因因为CentOS系统执行cp,原文件权限和宿主不会被保留。

       得到如下目录结构:
       Mysql 数据文件&&日志文件 目录地址迁移指南

       八、修改mysql配置文件:vim /etc/mysql/my/cnf,修改数据库文件以及日志文件的存放路径
      
     Mysql 数据文件&&日志文件 目录地址迁移指南
 

     ok,网上很多教程都到此为止,但动手操作的同学会发现,此时启动mysql会报错,主要错误信息是这样的:/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13),这个错误其实就是mysql的数据目录迁移错位。那怎么解决呢?其实,在my.cnf中注释部分说明的很清楚:# * IMPORTANT# If you make changes to these settings and your system uses apparmor, you may# also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.

     apparmor是linux内核强制访问控制系统,这个非常重要!

 

    九、我们需要进行调整mysql的强制访问目录:vim /etc/apparmor.d/usr.sbin.mysqld
    Mysql 数据文件&&日志文件 目录地址迁移指南
     十、记得刷新下,使apparmor配置生效:/etc/init.d/apparmor reload

     十一、此时,重启MySQL服务,service mysqld start

 

 至此你的MySQL的已经更换为你的新路径了!

 

你可能感兴趣的:(mysql)