您现在的位置是:蓝石榴 > 个人博客 > 数据库

个人博客

Ubuntu下Mysql数据库文件迁移

2017-07-23数据库 4132
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
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

很赞哦!(411)