Ubuntu下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