迁移 RDS for MySQL 数据到本地 MySQL

阿里云数据库 MySQL 版支持通过物理备份文件和逻辑备份文件两种途径将云上数据迁移到本地数据库。
利用物理备份文件导出

背景信息

因为软件限制,目前数据恢复只支持在 Linux 系统下进行。如果您要恢复数据到 Windows 系统,可以先将数据恢复到 Linux 系统下,再将数据迁移到 Windows 系统。

前提条件

阿里云数据库使用开源软件 Xtrabackup 2.0.6 对 MySQL 数据库进行全量物理备份。用户需要下载该软件,并使用该软件进行数据恢复。Xtrabackup 官方网站为:http://www.percona.com/,请下载与您操作系统版本对应的 Xtrabackup 版本。

yum -y install epel-release
yum -y install percona-xtrabackup.x86_64
操作步骤

本例以本地服务器为 RHEL6/x64 系统,备份文件存储路径为 /home/mysql/ 为例。
下载云数据库 物理备份文件 并上传至目标服务器。备份文件获取方法请参见 下载备份数据。如果目标服务器可以访问源实例,您也可以使用 wegt "url"
下载备份文件。其中 url 为备份文件下载地址。

RDS备份文件下载完毕后,我们需要对其进行解压。按照阿里云官方文档,我们需要下载阿里云专门的脚本进行解压,而且必须是在linux OS 64bit上使用。

必须说明:RDS的备份文件只能在linux OS上进行的。在windows OS上使用第三方软件解压的话,你会发现看不到任何的文件。

下载RDS解压脚本,使用如下命令:

wget http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh

使用RDS解压脚本,解压RDS备份文件,如下:

sh rds_backup_extract.sh -f /root/hins1035007_xtra_20160220031920.tar.gz -C /data

解压完毕后,我们切换到/data目录下查看RDS备份解压的文件,如下:

迁移 RDS for MySQL 数据到本地 MySQL_第1张图片
Paste_Image.png

通过上图,可以很明显的看出,RDS是通过percona-Xtrabackup进行全量备份的。

RDS解压完毕后,我们需要修改/data目录的所有者。如下:

chown mysql:mysql -R /data/

现在我们在/data目录下创建mysql的配置文件my.cnf,如下:

vim /data/my.cnf

[mysqld]
datadir = /data/
port = 3306
server_id = 3
socket = /data/mysqld.sock
max_allowed_packet=32
log-error = /data/error.log
default-storage-engine=INNODB

my.cnf文件创建完毕后,我们现在来启动mysql。

注意:RDS备份数据库中的root用户是没有密码的,而且此时RDS备份数据库中只有root这一个用户。

启动命令如下:

/usr/bin/mysqld_safe –defaults-file=/data/my.cnf &

或者

/etc/init.d/mysql

通过上图,我们可以很明显的看出mysql已经正常启动。现在我们再来测试,是否可以正常连接mysql。如下:

mysql -h127.0.0.1 –uroot -p

现在我们再来创建root用户密码,并赋予其连接权限。如下:

use mysql;

update user set password=password(‘123456′) where user=’root’;

update user set host=’%’ where user=’root’ && host=’127.0.0.1′;

flush privileges;

注意:如果不想这么麻烦的话,我们可以直接跳过用户验证,使用如下命令:

/usr/bin/mysqld_safe –defaults-file=/data/my.cnf –skip-grant-table&

这样客户端在连接时,可以任意用户名和密码。

注意:在此有两点和官方教程不一样的地方需要说明:
1、没有安装percona-Xtrabackup数据恢复软件进行数据恢复
2、数据库root用户是没有密码的

你可能感兴趣的:(迁移 RDS for MySQL 数据到本地 MySQL)