Ubuntu下Mysql数据库文件迁移


   作者蓝石榴    由lan16转载自蓝石榴    更新于2017-07-23 10:38    已被浏览501次

1.确定mysql数据库文件存放目录
  用Ubuntu的apt包管理工具安装的mysql数据库,默认将数据库文件保存在/var/lib/mysql目录下

2.迁移数据库文件到新的目录下
  1)先使用命令将mysql数据库服务停止:
  /etc/init.d/mysql stop
  2)可以使用mv命令将原数据库目录文件移动到新的目录,好处是不会简单,不会修改原数据库文件的权限,以及用户和用户组归属:
  mv /var/lib/mysql /mnt/data/

3.修改配置文件
  1)my.cnf文件:Ubuntu默认将my.cnf配置文件放在/etc/mysql/my.cnf位置,使用命令
  vi /etc/mysql/my.cnf
  将其中[mysqld]标签下的datadir属性值改为新数据库目录路径/mnt/data/mysql,修改后保存并退出。
  2)usr.bin.mysqld文件:由于Ubuntu使用了apparmor安全模块,就是类似于沙盒运行的一种机制,它可以限制软件在运行时的一些行为,比如对哪些目录和文件可以读写加锁等等。由于修改了数据库文件路径,所以要修改mysql数据库的apparmor配置文件,在其中将新数据库文件目录和文件的读写及加锁权限添加上去,同时可以删除或者注释掉原先/var/lib/mysql数据库文件目录的权限。mysql数据库的apparmor配置文件路径在/etc/apparmor.d/usr.sbin.mysqld。使用命令编辑这个配置文件:
  vi /etc/apparmor.d/usr.sbin.mysqld
  找到其中的/var/lib/mysql/ r,/var/lib/mysql/** rwk,两行权限声明,可以在前面加上#好注释掉。
  然后对照格式,加入新路径的权限声明:/mnt/data/mysql/ r,/mnt/data/mysql/** rwk,保存并关闭。
  3)abstractions/mysql文件:由于usr.bin.mysqld文件中引用了abstractions/mysql文件,也就是会将abstractions/mysql文件中的权限声明导入进来。因此,也修改下这个文件:
  vi /etc/apparmor.d/abstractions/mysql
  将其中的/var/lib/mysql/mysql.sock rw,注释,添加新的权限声明/mnt/data/mysql/mysql.sock rw,保存后退出。

4.重启数据库
  配置文件修改成功后就可以重启数据库,重启数据库之前需要先重新载入apparmor配置文件,使用命令重新载入:/etc/init.d/apparmor restart
  重载成功就可以使用下面命令启动数据库:/etc/init.d/mysql start

豫ICP备13022176号-2   鄂公网安备 42010602000416号   Copyright © 2013 - 2020 蓝石榴. All Rights Reserved  联系我 联系我 蓝石榴技术社区