mysql数据迁移

一. 停止数据库

➜  ~service mysql stop

二. 创建数据要存储的目标目录

➜  ~mkdir /data/mysql_data

**三. 指定目录的拥有者

➜  ~chown mysql:mysql /data/mysql_data

四. 修改mysql配置文件

➜  ~vi /etc/mysql/my.cnf
##找到datadir并修改刚才创建的目录##
#datadir = /var/lib/mysql
datadir  = /data/mysql_data

五.复制原来的mysql数据

###记住cp一定要加-a选项,防止权限等丢失###
➜  ~cp -a /var/lib/mysql/* /data/mysql_data/

六. 修改mysql访问新数据目录的权限

➜  ~ vi /etc/apparmor.d/usr.sbin.mysqld
###找到mysql原先的路径权限配置,修改成新的目录###
#/var/lib/mysql/ r
#/var/lib/mysql/** rw
/data/mysql_data/ r
/data/mysql_data/** rw

> 注意:这里目录后面的斜杠"/"一定不能丢,丢了会导致mysql errno 13的错误

七. 重新加载权限控制服务

➜  ~ service apparmor restart

八. 启动mysql服务

➜  ~ service mysql start

九. 测试是否迁移成功

1. 登录数据库,创建一个数据库
mysql>create database migrate_test;
mysql>show databases;
+------------------------+
| Database               |
+------------------------+
| migrate_test           |
+------------------------+
mysql>use migrate_test;
mysql>create table test(name VARCHAR(20), age INT);
mysql>exit

2.进入数据目录查看
➜  ~ cd /data/mysql_data
➜  ~ ls 
###若找到刚才数据库migrate_test对应目录说明迁移成功
migrate_test
➜  ~ ls migrate_test
db.opt  test.frm

你可能感兴趣的:(mysql,数据库)